2013-04-06 90 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。所以这两个部分都需要在那里。合理?