Android怎樣使應用安裝後不在launcher上顯示圖標

參考了網上很多方法,最後找到了這樣一種方法,既可以隱藏launcher中App的圖標,又可以通過隱式啓動的方式啓動起該App中的指定Activity,好了直接進入主題。

 

子app的工程名叫app:

AndroidManifest.xml中定義如下:

 


 
  1. <application

  2. android:allowBackup="true"

  3. android:icon="@mipmap/ic_launcher"

  4. android:label="@string/app_name"

  5. android:supportsRtl="true"

  6. android:theme="@style/AppTheme">

  7. <activity

  8. android:name=".MainActivity"

  9. android:label="@string/app_name"

  10. android:theme="@style/AppTheme.NoActionBar">

  11. <intent-filter>

  12. <action android:name="android.intent.action.MAIN" />

  13. <category android:name="android.intent.category.DEFAULT"/>

  14. <category android:name="android.intent.category.LAUNCHER" />

  15. <data android:host="AuthActivity" android:scheme="com.example.hyy"></data>

  16.  
  17. </intent-filter>

  18. </activity>

  19. </application>


 

主app的名叫host:

在點擊button的時候進行跳轉,使用隱式啓動方式Uri.parse("com.example.hyy://AuthActivity"),喚起子app中的MainActivity,寫法如下:

 


 
  1. public void onClick(View view) {

  2. Intent intent = new Intent();

  3.  
  4. // ComponentName cn = new ComponentName("com.example.hyy.myapplication","com.example.hyy.myapplication.MainActivity");

  5. // intent.setComponent(cn);

  6. // intent.setAction("android.intent.action.MAIN");

  7.  
  8. Uri data = Uri.parse("com.example.hyy://AuthActivity");

  9. intent.setData(data);

  10.  
  11. try {

  12. startActivityForResult(intent, RESULT_OK);

  13. } catch (Exception e) {

  14. Toast.makeText(MainActivity.this, "沒有該子APP,請下載安裝",Toast.LENGTH_SHORT).show();

  15. }

  16. }


當然也可以使用我註釋掉的傳統的通過setComponent的方式去啓動,效果是一樣的。

 

爲什麼加入這個之後app就不顯示圖標了呢?
因爲我們把app的入口Activity申明爲由接收隱士的Intent來啓動,這樣自然也就不會顯示圖標了。
如果需要顯示圖標的話而且也必須響應上述Uri的話,那麼我們可以在該Activity中再加入一個intent-filter標籤,將data元素移到新建的標籤中。
這樣應用既可以顯示圖標又可以響應特定的Uri了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章