要在Android 6.0上接收短信,您需要获得”READ_SMS”和”RECEIVE_SMS”权限。
首先,在您的AndroidManifest.xml文件中添加以下权限声明:
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
然后,您需要创建一个BroadcastReceiver来接收短信:
public class SmsReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")) {
// 处理接收到的短信
Bundle bundle = intent.getExtras();
if (bundle != null) {
Object[] pdus = (Object[]) bundle.get("pdus");
if (pdus != null) {
// 遍历短信数组
for (Object pdu : pdus) {
SmsMessage smsMessage = SmsMessage.createFromPdu((byte[]) pdu);
String messageBody = smsMessage.getMessageBody(); // 短信内容
String sender = smsMessage.getOriginatingAddress(); // 发送者号码
// 进行处理
}
}
}
}
}
}
把上述代码保存成SmsReceiver.java文件,然后在你的Activity或者Service中注册这个BroadcastReceiver:
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("android.provider.Telephony.SMS_RECEIVED");
SmsReceiver smsReceiver = new SmsReceiver();
registerReceiver(smsReceiver, intentFilter);
当您的应用程序处于活动状态时,您将能够通过接收器接收到Android 6.0上的短信。请注意,如果您的应用程序未处于活动状态,您将需要动态地请求运行时权限才能接收短信。
希望对您有所帮助!
在Android 6.0及更高版本中,要接收短信,需要在应用的AndroidManifest.xml文件中声明接收短信的权限和Intent过滤器。以下是一个示例:
-
在权限声明中添加接收短信的权限:
<uses-permission android:name="android.permission.RECEIVE_SMS" />
-
在应用的receiver标签中添加接收短信的Intent过滤器:
<receiver android:name=".SmsReceiver"> <intent-filter> <action android:name="android.provider.Telephony.SMS_RECEIVED" /> </intent-filter> </receiver>
-
创建一个继承自BroadcastReceiver的类来接收短信,并在onReceive方法中处理接收到的短信:
public class SmsReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")) { Bundle bundle = intent.getExtras(); if (bundle != null) { Object[] pdus = (Object[]) bundle.get("pdus"); if (pdus != null) { for (Object pdu : pdus) { SmsMessage smsMessage = SmsMessage.createFromPdu((byte[]) pdu); String message = smsMessage.getMessageBody(); // 处理接收到的短信 } } } } } }
以上就是在Android 6.0中接收短信的基本步骤。请注意,你还需要在运行时获取相关权限。
发布者:luotuoemo,转转请注明出处:https://www.jintuiyun.com/144824.html