我的Android应用程序没有显示在应用程序抽屉中?

And*_*oob 7 android android-manifest

我已经制作了一个短信应用程序,但是当它安装时,它不会出现在应用程序抽屉上(从主屏幕启动应用程序的位)!我可以确认它实际安装是因为我可以从其他程序的意图启动它,图标/名称甚至出现在设置下的"管理应用程序"中!一旦启动整个应用程序功能应该(我甚至可以选择使用它作为默认发送短信!)所以我不认为它与我的java文件有任何关系,我感觉它与我的有关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>
Run Code Online (Sandbox Code Playgroud)

这是一个混乱,因为我努力使它作为一个正确的短信应用程序工作,但我看不出我做错了让它不在应用程序抽屉上列出,请帮忙!

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

<intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
        <data android:scheme="sms" /> 
    </intent-filter>
Run Code Online (Sandbox Code Playgroud)

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

<intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
Run Code Online (Sandbox Code Playgroud)

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

fle*_*y76 7

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

<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)

确保已为包指定了图标和名称,以便可以在列表中显示.


Das*_*uni 6

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

<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>
Run Code Online (Sandbox Code Playgroud)