小弟初学android
写了一个类用来接收模拟器发送的短信:
public class SMSReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
Object messages[] = (Object[])bundle.get("pdus");
SmsMessage[] smsMessage = new SmsMessage[messages.length];
for(int i=0;i<messages.length;i++){
smsMessage[i] = SmsMessage.createFromPdu((byte[])messages[i]);
}
Toast toast = Toast.makeText(context, smsMessage[0].getMessageBody(), Toast.LENGTH_LONG);
toast.show();
}
}
AndroidManifest.xml 配置文件内容
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".HelloWorld"
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=".SMSReceiver" android:enabled="true">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
</receiver>
</application>
模拟接收短信时
LogCat后台抛出异常:
could't open fd for content://setting//system/notification_sound
详解见附件,请各位帮忙看一下。
问题补充
没人知道吗?
android 使用BroadcastReceiver 接收模拟短信报错
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
4条回答 默认 最新
- qianzhi008 2011-06-03 10:48关注
[quote]与HelloWorld无关。主要是用BroadcastReceiver类。
就是照着《Android应用开发揭秘》4.2.3做一个小的例子。。[/quote]
主要是你的是你配置的问题,你的AndroidManifest.xml配置文件中没有配置user-permission,也就是样
[code="java"]
android:label="@string/app_name"><receiver android:name=".SMSReceiver" android:enabled="true">
[/code]
这样的话你通过模拟器发就好了。就能在HelloWorld中显示Message内容了 :D本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报