开发者

My android app is not being displayed in the app drawer?

开发者 https://www.devze.com 2023-03-08 13:13 出处:网络
I\'ve made an sms application but when it\'s installed it does not appear on the app drawer (the bit where you launch applications from on the home screen)! I can confirm it is actually installed beca

I've made an sms application but when it's installed it does not appear on the app drawer (the bit where you launch applications from on the home screen)! I can confirm it is actually installed because i can launch it from intents from other programs and the icon/name even appears in 'manage applications' under settings! Once launched the whole app functions as it should (I even get the option to use it as default for sending sms!) so i don't think its anything to do with my java files, I have a feeling its something to do with my android manifest:

<?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>开发者_如何学C;
 </application>
</manifest>

It's a bit of a mess as I was struggling to make it work as a proper sms application, but I can't see what I've done wrong to make it not list itself on the app drawer, please help!

EDIT: sorted it, it was the intent filter

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

it shouldn't have the android:scheme in there, i changed it to

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

and it now gets listed in the app drawer :)


You could try removing the data entry from your first intent filter for DisplaySMSRecieved. To appear on the launcher you need to have an intent filter like:

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

Make sure you have specified an icon and a name for your package so that it can be displayed in the list.


also, you can use double intent-filter like the following one inside your desired activity that uses data

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


It's a long shot but is there an icon in the drawable folder? You have android:icon="@drawable/icon which tells Android what icon to use in the app drawer. Maybe try putting in your own icon. Also try uninstalling/reinstalling (maybe reboot phone also just to be sure) the app as I've noticed that Android will sometimes cache these icons.

UPDATE

What happens when you run it from eclipse and then hold down the HOME button (to get recent apps)? Does it show up there? Is there an icon?

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号