应用程序图标在Android设备上不可见

时间:2013-03-12 09:49:23

标签: android android-manifest

我正在开发一款安卓游戏。

它工作正常,但我有一个问题,如果我从我的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>

请告诉我相同的原因?

3 个答案:

答案 0 :(得分:15)

截至"Using intent matching"

“意图与意图过滤器匹配,不仅要发现要激活的目标组件,还要发现设备上的组件集。例如,Android系统填充应用程序启动器,顶部-level屏幕,通过使用指定“android.intent.action.MAIN”操作和“android.intent.category.LAUNCHER”类别的intent过滤器查找所有活动,显示可供用户启动的应用程序(如然后,它会在启动器中显示这些活动的图标和标签。同样,它会通过在其过滤器中查找带有“android.intent.category.HOME”的活动来发现主屏幕。“

应用程序启动程序无法识别您的启动器活动,因为您假设某些活动数据。请在请求数据时添加新的intent过滤器。

示例:

        <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>

答案 1 :(得分:3)

对我来说也是如此。您可以修复它将数据标记添加到另一个intent-filter中,如下所示:

        <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>

答案 2 :(得分:0)

我刚刚将这一行添加到Manifest中的启动器活动中,并显示了图标:

<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>