2013-03-12 66 views
3

我正在开发一款android游戏。应用程序图标在Android设备上不可见

它的工作正常,但我有一个问题,如果我删除从我的android manifest下线,我的应用程序图标是可见的。如果我不删除这些行,那么我的应用程序图标在我的android上不可见。

<data android:host="mocha" android:path="/RTT/reset" 
    android:scheme="content" /> 

这是我原来的Android清单与图标不可见:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="ihpc.mocha.rtt" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
     android:minSdkVersion="8" 
     android:targetSdkVersion="12" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.READ_LOGS" /> 
    <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
    <application 
     android:name="com.game.rtt.RttGame" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:largeHeap="true" 
     android:theme="@android:style/Theme.NoTitleBar" > 
     <activity 
      android:screenOrientation="sensorLandscape" 
      android:name=".MainScene" 
      android:label="@string/title_activity_main_scene" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

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

       <!-- remove below lines to visible the icon start!!!--> 
      <data 
       android:host="mocha" 
       android:path="/RTT/reset" 
       android:scheme="content" /> 
      <!-- remove below lines to visible the icon end!!!--> 
      </intent-filter> 

     </activity> 

     <activity 
      android:name=".SessionTimeOutActivity" 
      android:label="@string/app_name" 
      android:screenOrientation="reverseLandscape"> 
      <intent-filter> 
       <action android:name="android.intent.action.VIEW" /> 

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

       <data 
        android:host="mocha" 
        android:path="/RTT/sessionTimeOut" 
        android:scheme="content" /> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest> 

请让我知道同样的原因吗?

回答

14

由于"Using intent matching"

“意图是针对意向匹配滤波器不仅要发现一个目标组件激活,同时也发现一些有关在设备上设置的组件。例如,Android系统。通过查找具有指定“android.intent.action.MAIN”动作和“android.intent”的意图过滤器的所有活动来填充应用程序启动器,即显示可供用户启动的应用程序的顶级屏幕。 category.LAUNCHER“类别(如前一节所述),然后在启动程序中显示这些活动的图标和标签;同样,通过使用”android.intent.category.H“查找活动来发现主屏幕OME“在其过滤器中。”

应用程序启动器无法识别您的启动器活动,因此您会为您的活动假设一些数据。请在请求数据的位置添加一个新的意图过滤器。

例子:

 <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.SEND"/> 
      <category android:name="android.intent.category.DEFAULT" /> 
      <data android:mimeType="application/json"/> 
     </intent-filter> 
+0

感谢回答+1的知识yoiu分享。希望它也会帮助别人:) – 2013-03-12 10:12:21

+0

也为我工作。在我的Android应用中集成Google索引时,我遇到了同样的问题。多谢,伙计。 :-) – 2015-11-17 13:23:53

2

它发生同样的给我。您可以修复它添加数据标签到另一个意图过滤器是这样的:

 <activity 
     android:screenOrientation="sensorLandscape" 
     android:name=".MainScene" 
     android:label="@string/title_activity_main_scene" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

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

      </intent-filter> 
     <intent-filter> 
      <data 
      android:host="mocha" 
      android:path="/RTT/reset" 
      android:scheme="content" /> 
     <!-- remove below lines to visible the icon end!!!--> 
     </intent-filter> 

    </activity> 
+0

感谢和+1的答案,但我需要理由,以及我从其他答案。 – 2013-03-12 10:13:01

0

我只是说此行发射活动的清单和图标出现了:

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

它看起来像这样:

<activity 
      android:name=".MainActivity" 
      android:label="@string/app_name"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
相关问题