android 接收短信
时间: 2023-06-30 12:06:53 浏览: 68
要在 Android 上接收短信,可以使用 BroadcastReceiver。以下是一个简单的示例:
1. 创建一个类来扩展 BroadcastReceiver:
```
public class SmsReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// 在此处处理接收到的短信
}
}
```
2. 在 AndroidManifest.xml 文件中注册 BroadcastReceiver:
```
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<application>
<receiver android:name=".SmsReceiver">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
</application>
```
3. 在 onReceive() 方法中处理接收到的短信:
```
@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 phoneNumber = smsMessage.getOriginatingAddress();
// 在此处处理短信内容和发送者号码
}
}
}
}
}
```
请注意,要接收短信,您需要在 AndroidManifest.xml 文件中声明 RECEIVE_SMS 权限。此外,从 Android 4.4 KitKat 开始,只有默认短信应用程序才能接收到 SMS_RECEIVED 意图。如果您的应用程序不是默认短信应用程序,则可以使用 SMS Retriever API 来接收短信。