我尝试在我的应用中收到短信,并且确定问题出在我的AndroidManifest.xml文件中
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.amin_amini.smstestmobi"
android:versionCode="1"
android:versionName="1.0.0">
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="15" />
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<uses-permission android:name="android.permission.SEND_SMS"/>
<uses-permission android:name="android.permission.READ_SMS"/>
<application android:icon="@drawable/ic_launcher" android:label="@string/app_name">
<activity android:name=".SMS"
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"
android:exported="true"
android:permission="android.permission.BROADCAST_SMS">
<intent-filter android:priority="1000">
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
</receiver>
</application>
</manifest>
我的SmsReceive.java就是这样
package com.amin_amini.smstestmobi;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsMessage;
import android.widget.Toast;
public class SmsReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
//---get the SMS message passed in---
Bundle bundle = intent.getExtras();
SmsMessage[] msgs = null;
String str = "";
if (bundle != null)
{
//---retrieve the SMS message received---
Object[] pdus = (Object[]) bundle.get("pdus");
msgs = new SmsMessage[pdus.length];
for (int i=0; i<msgs.length; i++)
{
msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
str += "SMS from " + msgs[i].getOriginatingAddress();
str += " :";
str += msgs[i].getMessageBody().toString();
str += "\n";
}
//---display the new SMS message---
Toast.makeText(context, str, Toast.LENGTH_SHORT).show();
}
Toast.makeText(context, "Hey", Toast.LENGTH_SHORT).show();
}
}
我确定我的问题出在manifest.xml中,因为
Toast.makeText(context, "Hey", Toast.LENGTH_SHORT).show();
什么都不显示
我该怎么办 ?
编辑:正如我们的朋友所说的,我曾经用过
Log.i("Hey","Hey" );
在我的函数中,但LogCat中什么也不会显示,所以我断然确定我的问题出在我的AndroidManifest.xml注意:我在HTC
Sensation上使用的是android 4.0.3
将您的接收器代码更改为该代码,将对您有所帮助,如果仍然无法正常运行,则可能是您安装了另一个具有更高优先级的SMS应用程序,并且该服务将中止广播服务。
<receiver android:name=".SmsReceiver">
<intent-filter android:priority="1000">
<action android:name="android.intent.action.PHONE_STATE" />
<action android:name="PACKAGE_NAME.android.action.broadcast"/>
<action android:name="android.provider.Telephony.SMS_RECEIVED"></action>
</intent-filter>
</receiver>
这是我的代码: 根据这个页面,方法返回一个类型为的数组,但是当我试图用发送它时,我得到一个。我错过了什么?
我正在尝试设置一个类来接收短信和发送状态。以下是我的清单如何查找此任务: 我收到了收到的消息,但没有收到发送的消息,我的清单声明有问题吗?
我希望我的Java应用程序在不使用任何额外硬件设备的情况下发送和接收短信,而且它必须是免费的。 我进行了搜索,但我只找到了标题,我找到了一些类似SMSLib的东西,但另一方面,我没有找到学习这些的教程或书籍。 我还发现了SMSLib代码,但不明白: 发送消息/短信代码 阅读信息/短信代码
本文向大家介绍Android BroadcastReceiver接收收到短信的广播,包括了Android BroadcastReceiver接收收到短信的广播的使用技巧和注意事项,需要的朋友参考一下 一、知识介绍 1、broadcastReceiver是广播接受者,四大组件之一。 2、Android中内置了很多系统级别的广播,可以在应用程序中得到各种系统的状态信息。 3、使用场景:
我试图使用我的手机作为GSM调制解调器。我使用SMSLib发送和接收短信用这个调制解调器。问题是,当我的手机(GSM调制解调器)收到短信时,我没有用SMSL通知ib.but代码整体是好的,例如当GSM调制解调器收到呼叫时通知我。我的代码没有任何错误,因为我只使用SMSLib示例代码接收消息。SMSLib示例代码是: 程序输出例如: modem.com4的网关状态更改,旧:停止- 调制解调器信息:制
09-12 09:13:40.016 129 5-1309/?w/broadcastqueue:权限拒绝:接收com.example.richard.simplesmstoast/.smsreceiver由于发件人com.android.phone(UID1001)而要求Android.Permission.receive_sms的意图{act=android.provider.telephony