2013-04-06 44 views
0

我對Android編程頗爲陌生,我正在盡我所能理解本教程。我已經從this link下載了示例代碼。如何在AndroidManifest.xml中添加代碼

現在我想集成這個thread的代碼。這裏說

的代碼是「在你的AndroidManifest.xml中聲明短信接收器」:

<receiver android:name="mypackage.SMSReceiver"> 
    <intent-filter> 
    <action android:name="android.provider.Telephony.SMS_RECEIVED"/> 
    </intent-filter> 
</receiver> 

<uses-permission android:name="android.permission.RECEIVE_SMS" /> 

下面是從樣本文件中的現有代碼,我的AndroidManifest.xml下下載:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
     package="com.example.smsTest" 
     android:versionCode="1" 
     android:versionName="1.0"> 
    <application android:icon="@drawable/icon" android:label="@string/app_name"> 
     <activity android:name=".SMSTest" 
        android:label="@string/app_name"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

    </application> 
    <uses-permission android:name="android.permission.SEND_SMS"> 
    </uses-permission> 
    <uses-permission android:name="android.permission.RECEIVE_SMS"> 
    </uses-permission> 
</manifest> 

現在我的問題是將代碼(上面的第一個代碼)添加到AndroidManifest.xml的位置。

我試圖改變這一行:

<action android:name="android.intent.action.MAIN" /> 

與此:

<action android:name="android.provider.Telephony.SMS_RECEIVED"/> 

沒有運氣。

任何幫助表示讚賞。

+1

首先,XML不是代碼,而是數據。其次,谷歌10秒。 http://www.vogella.com/articles/AndroidBroadcastReceiver/article.html – Simon 2013-04-06 20:40:43

回答

1
<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.smsTest" 
    android:versionCode="1" 
    android:versionName="1.0"> 
<application android:icon="@drawable/icon" android:label="@string/app_name"> 
    <activity android:name=".SMSTest" 
       android:label="@string/app_name"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
<receiver android:name="mypackage.SMSReceiver"> 
    <intent-filter> 
    <action android:name="android.provider.Telephony.SMS_RECEIVED"/> 
</intent-filter> 
</receiver> 
</application> 
<uses-permission android:name="android.permission.SEND_SMS"> 
</uses-permission> 
<uses-permission android:name="android.permission.RECEIVE_SMS"> 
</uses-permission> 
</manifest> 
+0

感謝您的回覆。編輯SmsReceiver.java後面臨新的問題。我剛剛在'Toast.makeText(context,str,Toast.LENGTH_SHORT).show();'後面添加了代碼'abortBroadcast();'並且它帶來了3個錯誤,例如'Call requires API level 4(current min is 1): android.telephony.SmsMessage#createFromPdu SmsReceiver.java/SMSTest/src/com/example/smsTest line 25 Android Lint Problem# – jaypabs 2013-04-06 20:57:41

+0

@jaypabs請發佈一個新的問題與完整的代碼和你得到的錯誤,以便我可以給你一個回答。 – 2013-04-06 21:01:50

+0

@jaypabs如果這些答案中的任何一個幫助您回答聲望,您可以通過接受答案(點擊左側的綠色勾號)和/或點擊答案(點擊左側的橙色向上箭頭)來回饋聲望。祝你工作順利! maurizio – 2013-04-06 21:02:08

1

您需要將接收器作爲第二項添加到應用程序中。您不要替換活動上的意圖過濾器。它應該在和標籤之間。

清單真的在描述您的apk中的內容。你的應用程序將有1個活動,SMSTest,從啓動器啓動。它也有1個接收器意圖接收SMS_RECEIVED。所以這兩個部分都需要在那裏。合理?