2011-05-25 69 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> 
相關問題