我制作了一个短信应用程序,但安装后它没有出现在应用程序抽屉(您从主屏幕上启动应用程序的位置)上!我可以确认它确实已安装,因为我可以从其他程序的意图启动它,并且图标/名称甚至出现在设置下的“管理应用程序”中!一旦启动了整个应用程序的功能(我什至可以选择使用它作为默认发送短信!),所以我不认为它与我的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>
它现在已列在应用程序抽屉中:)
您可以尝试从 DisplaySMSRecieved 的第一个意图过滤器中删除数据条目。要出现在启动器上,您需要有一个意图过滤器,例如:
<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" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<data android:scheme="sms" />
</intent-filter>
这是一个远景,但是drawable文件夹中有一个图标吗? 您有
android:icon="@drawable/icon
告诉 Android 在应用程序抽屉中使用什么图标。
也许尝试放入您自己的图标。还可以尝试卸载/重新安装(也许也可以重新启动手机以确保)该应用程序,因为我注意到 Android 有时会缓存这些图标。
更新
当您从 eclipse 运行它然后按住 HOME 按钮(以获取最近的应用程序)时会发生什么? 它出现在那里吗?有图标吗
请检查手表上是否启用了开发人员选项,通过启用开发人员选项解决了相同的问题,并且应用程序出现在应用程序菜单上。