2011-05-25 71 views
6

我已经做了一个短信应用程序,但是当它安装时,它不会出现在应用程序抽屉中(您从主屏幕上启动应用程序的位)!我可以确认它是实际安装的,因为我可以从其他程序的意图中启动它,并且图标/名称甚至出现在设置下的“管理应用程序”中!一旦启动整个应用程序的功能,因为它应该(我甚至可以选择使用它作为默认发送短信!),所以我不认为它与我的Java文件有任何关系,我有一种感觉,它与我的事情有关Android清单:我的android应用程序未显示在应用程序抽屉中?

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

这是一个有点乱,我挣扎,使其作为一个适当的SMS应用工作,但我不明白我做了什么错,使其不能将自己的应用程序抽屉,请帮助!

编辑:在有计划,我把它改成

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

它不应该有在Android应用程序抽屉:)

+0

你可以尝试将数据标签从你的第一个意向过滤器移动到其他所需的活动里面? – advantej 2011-05-25 15:23:52

回答

6

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

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

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

0

这是一个长镜头,但可绘制文件夹中是否有图标? 你有android:icon="@drawable/icon告诉Android在应用程序抽屉中使用什么图标。 也许尝试把你自己的图标。另外尝试卸载/重新安装(也许重新启动手机也只是为了确保)应用程序,因为我注意到Android有时会缓存这些图标。

UPDATE

当您从Eclipse中运行它,然后按住HOME键会发生什么(获取最新的应用程序)? 它出现在那里吗?有没有图标?

0

此外,还可以使用双意图过滤像下面一个使用数据

<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> 
相关问题