Android中短信的读取与拦截
16lz
2022-03-04
Android中短信也是一种广播,当短信来时系统会发出广播。我们只要处理广播事件即可读取短信信息。
读取短信代码1:
public class SMSReceiver extends BroadcastReceiver{ public final static SmsMessage[] getMessagesFromIntent(Intent intent){ Bundle bundle= intent.getExtras(); Object messages[]=(Object[])bundle.get("pdus"); SmsMessage mSmsMessage[]= new SmsMessage[messages.length]; for(int i=0;i<messages.length;i++){ mSmsMessage[i]=SmsMessage.createFromPdu((byte[])messages[i]); } return mSmsMessage; } }
读取短信代码2:
/** * 获得短信 * @param intent * @return */ public final static SmsMessage[] getMessagesFromIntent(Intent intent) { Object[] messages = (Object[]) intent.getSerializableExtra("pdus"); byte[][] pduObjs = new byte[messages.length][]; for (int i = 0; i < messages.length; i++) { pduObjs[i] = (byte[]) messages[i]; } byte[][] pdus = new byte[pduObjs.length][]; int pduCount = pdus.length; SmsMessage[] msgs = new SmsMessage[pduCount]; for (int i = 0; i < pduCount; i++) { pdus[i] = pduObjs[i]; msgs[i] = SmsMessage.createFromPdu(pdus[i]); } return msgs; }
注意要在AndroidManifest.xml中声明其权限
<receiver android:name=".SMSReceiver" android:enabled="true"> <intent-filter> <action android:name="android.provider.Telephony.SMS_RECEIVED"/> </intent-filter> </receiver>
以上内容先暂记,待续。。。。
更多相关文章
- Android(安卓)动态注册广播
- Android的第三个应用---短信发送器
- Android(安卓)发送短信 和 打电话 具体事项
- 《Android》Lesson21-广播+SharedPreferences
- Android中彩信文件的读取
- android 飞行模式 注册广播后 三种状态监听
- Android(安卓)之 监控手机电量
- Android:短信发送器
- android读取plist文件