2014-01-09 65 views
2

我有以下意圖的應用在我的清單:應用程序沒有出現在「應用」,在模擬器

<activity 
     android:name=".ui.ui.MainActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
      <action android:name="android.intent.action.VIEW" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
      <category android:name="android.intent.category.BROWSABLE" /> 
      <data android:host="myapp.com" android:scheme="http" /> 
     </intent-filter> 
    </activity> 

當我運行從我的IDE中的應用程序,它顯示了在模擬器上。但是,它在「應用程序」中沒有圖標。所以如果我需要再次啓動它,我必須從我的IDE再次運行應用程序。

如果我改變的意圖,只是:

<activity 
     android:name=".ui.ui.MainActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN"> 
      <category android:name="android.intent.category.LAUNCHER"> 
     </intent-filter> 
    </activity> 

那麼它得到一個圖標,在「應用程序」不過,現在我失去了其他功能,我需要 - 像browsabledata

問題

我該如何保留原始意圖,並在「應用程序」部分仍然有應用程序的圖標?

回答

0

你應該把不同的動作分成他們自己的過濾器。

<activity 
    android:name=".ui.ui.MainActivity" 
    android:label="@string/app_name" > 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
    <intent-filter> 
     <action android:name="android.intent.action.VIEW" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
     <category android:name="android.intent.category.BROWSABLE" /> 
     <data android:host="myapp.com" android:scheme="http" /> 
    </intent-filter> 
</activity> 

在您的活動中,您可以對不同的行爲做出不同的迴應。

Intent intent = getIntent(); 
// To get the action of the intent use 
String action = intent.getAction(); 
if (action.equals(Intent.ACTION_VIEW)) { 
    //Do something 
} else if(action.equals(Intent.ACTION_MAIN) { 
    //Do something else... 
} 
相關問題