一丶 broadcast receiver 廣播接收者
注:android的四大組件:
*activity用戶交互的界面
*content provider 暴露應(yīng)用程序隱私的數(shù)據(jù)給別的應(yīng)用程序
* broadcast receiver 廣播接收者
* service 后臺的服務(wù)
>Android手機里面的廣播接受者
>系統(tǒng)電量不足,電池充滿,插上充電器,sd卡被拔出,sd卡插上,撥出電話,接收到了短信,開機完畢,屏幕鎖定,屏幕解鎖
>在Android操作系統(tǒng)里面有很多的系統(tǒng)事件,Google工程師希望把這個事件告訴程序員(Android系統(tǒng)內(nèi)部內(nèi)置了電臺),程序員注冊收音機就可以獲取對應(yīng)的事件
例如1:監(jiān)聽用戶外撥的電話,獲取外撥電話的廣播事件(清單文件里面配置)
買個收音機
寫個類繼承BroadcastReceiver
OutCallReceiver extends BroadcastReceiver
2. 買個電池
<receiver android:name="com.xunfang.ipdail.OutCallReceiver" >
</receiver>
3. 調(diào)整到合適的頻道
<intent-filter >
<action android:name="android.intent.action.NEW_OUTGOING_CALL"/>
</intent-filter>
例如2:短信檢測廣播
//拿到用戶接收的所有短信
Object[] objs = (Object[]) intent.getExtras().get("pdus");
//循環(huán)拿到短信
for (Object obj : objs) {
SmsMessage sms = SmsMessage.createFromPdu((byte[])obj) ;
//拿到短信的內(nèi)容
String body = sms.getMessageBody() ;
//拿到短信的地址
String address = sms.getOriginatingAddress() ;
//拿到短信的發(fā)送時間
long date = sms.getTimestampMillis() ;
String d = new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss").format(new Date(date)) ;
System.out.println("內(nèi)容:" + body );
System.out.println("地址:" + address );
System.out.println("時間:" + d );
}
清單里面配置合適的頻道:
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
例3:sd卡狀態(tài)監(jiān)聽器
//拿到動作
String action = intent.getAction() ;
if("android.intent.action.MEDIA_MOUNTED".equals(action)){
System.out.println("sd卡裝上了,可以使用了");
Toast.makeText(context, "sd卡安裝了", 0).show() ;
}else if("android.intent.action.MEDIA_REMOVED".equals(action)){
System.out.println("sd被拔掉了,不要拔它");
Toast.makeText(context, "sd被拔掉了,不要拔它", 0).show() ;
}else if("android.intent.action.MEDIA_UNMOUNTED".equals(action)){
System.out.println("sd被卸載了,沒事不要卸載它");
Toast.makeText(context, "sd被卸載了,沒事不要卸載它", 0).show() ;
}
清單配置:
<intent-filter>
<action android:name="android.intent.action.MEDIA_MOUNTED" />
<action android:name="android.intent.action.MEDIA_REMOVED" />
<action android:name="android.intent.action.MEDIA_UNMOUNTED" />
<data android:scheme="file"/>
</intent-filter>
例4:應(yīng)用程序的卸載和安裝監(jiān)聽
//拿到動作
String action = intent.getAction() ;
System.out.println(action);
if("android.intent.action.PACKAGE_ADDED".equals(action)){
System.out.println("應(yīng)用程序安裝了");
Toast.makeText(context, "應(yīng)用程序安裝了", 0).show() ;
}else if("android.intent.action.PACKAGE_REMOVED".equals(action)){
System.out.println("應(yīng)用程序卸載了");
Toast.makeText(context, "應(yīng)用程序卸載了", 0).show() ;
}else if("android.intent.action.PACKAGE_REPLACED".equals(action)){
System.out.println("應(yīng)用程序覆蓋安裝了");
Toast.makeText(context, "應(yīng)用程序覆蓋安裝了", 0).show() ;
}
清單里面的頻道配置:
<intent-filter>
<action android:name="android.intent.action.PACKAGE_ADDED" />
<action android:name="android.intent.action.PACKAGE_REMOVED" />
<action android:name="android.intent.action.PACKAGE_REPLACED" />
<data android:scheme="package"/>
</intent-filter>
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
網(wǎng)頁題目:android廣播的應(yīng)用-創(chuàng)新互聯(lián)
地址分享:http://www.ekvhdxd.cn/article10/djoego.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、定制網(wǎng)站、營銷型網(wǎng)站建設(shè)、服務(wù)器托管、做網(wǎng)站、關(guān)鍵詞優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容