我正在开发一个应用程序,它显示收到短信的东西。我希望显示短信内容或只是收到短信的通知。 我正在使用android studio。我是新手。请帮忙..
答案 0 :(得分:0)
注册收听新消息的接收方。 请参阅这些链接 Android - SMS Broadcast receiver 和博客:Incomming SMS Broadcast Receiver - Android Example
答案 1 :(得分:0)
使用BroadcastReceiver
收听收到的短信。代码在这里:
public class SmsReciver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
SmsMessage msg = null;
if (null != bundle) {
Object[] smsObj = (Object[]) bundle.get("pdus");
for (Object object : smsObj) {
msg = SmsMessage.createFromPdu((byte[]) object);
Date date = new Date(msg.getTimestampMillis());//时间
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String receiveTime = format.format(date);
Toast.make(context, "number:" + msg.getOriginatingAddress()
+ " body:" + msg.getDisplayMessageBody() + " time:"
+ msg.getTimestampMillis(), 1000).show();
}
}
}
}
同时,在AndroidManifest.xml
:
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
...
<receiver android:name="com.dbjtech.acbxt.waiqin.SmsReciver" >
<intent-filter android:priority="999">
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
答案 2 :(得分:0)
如果您的应用在Android版本上运行&gt; 3.0,您必须包含Activity
,用户可以在安装后手动启动,以使应用程序退出已停止状态,concept introduced in Android 3.1。系统不会向已停止的应用广播,因此您的BroadcastReceiver
无法使用,直到用户明确发布应用为止。
除此之外,您的代码似乎是正确的。