【问题标题】:My android app is not being displayed in the app drawer?我的 android 应用程序没有显示在应用程序抽屉中?
【发布时间】:2011-05-25 15:00:59
【问题描述】:

我制作了一个短信应用程序,但安装后它并没有出现在应用程序抽屉中(您从主屏幕启动应用程序的位置)!我可以确认它确实已安装,因为我可以从其他程序的意图启动它,并且图标/名称甚至出现在设置下的“管理应用程序”中!一旦启动了整个应用程序应有的功能(我什至可以选择将其用作默认发送短信!)所以我认为这与我的 java 文件无关,我觉得它与我的安卓清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.pearson.sms"
  android:versionCode="1"
  android:versionName="1.0">
<uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permission.SEND_SMS">
</uses-permission>
<uses-permission android:name="android.permission.RECEIVE_SMS">
</uses-permission>
<uses-permission android:name="android.permission.READ_SMS">
</uses-permission>
<uses-permission android:name="android.permission.WRITE_SMS">
</uses-permission>
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".DisplaySMSRecieved"
          android:label="@string/app_name">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
        <data android:scheme="sms" /> 
    </intent-filter>
    <intent-filter>
            <action android:name="com.pearson.sms.LAUNCH" />  
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
</activity>
<receiver android:name=".PearsonSMSReciever"> 
    <intent-filter> 
        <action android:name="android.provider.Telephony.SMS_RECEIVED" />
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:scheme="sms" /> 
    </intent-filter> 
</receiver>
<activity android:name=".PearsonSMS"
          android:label="@string/send_sms">
          <intent-filter>
        <action android:name="android.intent.action.SENDTO" />
        <action android:name="android.intent.action.VIEW" />  
        <category android:name="android.intent.category.DEFAULT" />
        <data android:scheme="sms"/> 
    </intent-filter>
  </activity>
 </application>
</manifest>

这有点乱,因为我正在努力让它作为一个适当的短信应用程序工作,但我看不出我做错了什么,使它不在应用程序抽屉上列出,请帮助!

编辑:排序,它是意图过滤器

<intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
        <data android:scheme="sms" /> 
    </intent-filter>

它不应该有 android:scheme,我把它改成了

<intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>

它现在被列在应用程序抽屉中:)

【问题讨论】:

  • 你可以尝试将数据标签从你的第一个意图过滤器移动到另一个吗?

标签: android android-manifest


【解决方案1】:

您可以尝试从 DisplaySMSRecieved 的第一个意图过滤器中删除数据条目。要出现在启动器上,您需要有一个意图过滤器,例如:

<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

确保您已经为您的包指定了一个图标和一个名称,以便它可以显示在列表中。

【讨论】:

    【解决方案2】:

    此外,您可以在使用数据的所需活动中使用如下所示的双重意图过滤器

    <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.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
        <data android:scheme="sms" /> 
    </intent-filter>
    

    【讨论】:

      【解决方案3】:

      这是一个很长的镜头,但 drawable 文件夹中有一个图标吗? 您有android:icon="@drawable/icon,它告诉Android 在应用程序抽屉中使用什么图标。 也许尝试放入您自己的图标。还可以尝试卸载/重新安装(也许重启手机也只是为了确定)该应用程序,因为我注意到 Android 有时会缓存这些图标。

      更新

      当您从 eclipse 运行它然后按住 HOME 按钮(以获取最近的应用程序)时会发生什么? 它出现在那里吗?有图标吗?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-05-22
        • 2019-01-23
        • 2012-04-19
        • 2017-08-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多