android 自定義廣播和接收短信廣播

//清單文件
<receiver android:name=".Receiver">
<intent-filter android:priority="1000">
<action android:name="com.servicedemo4"/>
</intent-filter>
</receiver>

//mianactivty中
Intent intent = new Intent();
intent.setAction("com.servicedemo4");
//同步廣播
Context.sendBroadcast(intent);
//有序廣播
Context.sendOrderedBroadcast(intent,null);

//創(chuàng)建一個類用來接收廣播(繼承BroadcastReceiver)
class SmsListenerReceiver extends BroadcastReceiver {
//在onReceive方法中寫接收到廣播后要執(zhí)行的代碼
public void onReceive

//下面是接收短信廣播
清單文件
權(quán)限
<uses-permission android:name="android.permission.READ_SMS"/>
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
注冊receiver
<receiver android:name=".SmsListenerReceiver">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED"/> </intent-filter>

public class SmsListenerReceiver extends BroadcastReceiver {
@Override public void onReceive(Context context, Intent intent) {
Object[] objects=(Object[])intent.getExtras().get("pdus");
for (Object put:objects)
{////
//android.provider.Telephoney
創(chuàng)建一個短信管理對象SmsMessage
SmsMessage smsMessage = SmsMessage.createFromPdu((byte[]) pud);
//獲取短信內(nèi)容
String body = smsMessage.getDisplayMessageBody();
//獲取發(fā)送人短信號碼
String address = smsMessage.getOriginatingAddress();
//獲取短信時間
Date date = new Date(smsMessage.getTimestampMillis());//時間
//把獲取到的時間戳轉(zhuǎn)化成時間
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String receiveTime = format.format(date);
Log.e("短信:",address+":"+body+ receiveTime);
}
}
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容