3

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

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

请告诉我同样的原因?

4

3 回答 3

16

“使用意图匹配”开始:

“意图与意图过滤器相匹配,不仅可以发现要激活的目标组件,还可以发现有关设备上组件集的某些信息。例如,Android 系统填充应用程序启动器,即显示可供用户启动的应用程序,通过查找所有带有指定“android.intent.action.MAIN”动作和“android.intent.category.LAUNCHER”类别的意图过滤器的活动(如上一节所示) . 然后它在启动器中显示这些活动的图标和标签。类似地,它通过在其过滤器中查找具有“android.intent.category.HOME”的活动来发现主屏幕。”

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

例子:

        <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>
于 2013-03-12T10:04:24.477 回答
4

它也发生在我身上。您可以修复它,将数据标签添加到另一个意图过滤器中,如下所示:

        <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>
于 2013-03-12T10:08:30.327 回答
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>
于 2016-05-11T13:15:37.023 回答