91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

android廣播的應用

發布時間:2020-07-14 09:45:31 來源:網絡 閱讀:422 作者:秋寒526 欄目:移動開發

一丶 broadcast receiver 廣播接收者

注:android的四大組件:

*activity用戶交互的界面

*content provider 暴露應用程序隱私的數據給別的應用程序
* broadcast receiver 廣播接收者
* service 后臺的服務

>Android手機里面的廣播接受者
>系統電量不足,電池充滿,插上充電器,sd卡被拔出,sd卡插上,撥出電話,接收到了短信,開機完畢,屏幕鎖定,屏幕解鎖
>在Android操作系統里面有很多的系統事件,Google工程師希望把這個事件告訴程序員(Android系統內部內置了電臺),程序員注冊收音機就可以獲取對應的事件

例如1:監聽用戶外撥的電話,獲取外撥電話的廣播事件(清單文件里面配置)

  1. 買個收音機
            寫個類繼承BroadcastReceiver
            OutCallReceiver extends BroadcastReceiver
    2. 買個電池
            <receiver android:name="com.xunfang.ipdail.OutCallReceiver" >
            </receiver>
    3. 調整到合適的頻道
         <intent-filter >
                    <action android:name="android.intent.action.NEW_OUTGOING_CALL"/>
             </intent-filter>

例如2:短信檢測廣播

    //拿到用戶接收的所有短信
        Object[] objs = (Object[]) intent.getExtras().get("pdus");
        //循環拿到短信
        for (Object obj : objs) {
            SmsMessage sms = SmsMessage.createFromPdu((byte[])obj) ;
            //拿到短信的內容
            String body = sms.getMessageBody() ;
            //拿到短信的地址
            String address = sms.getOriginatingAddress() ;
            //拿到短信的發送時間
            long date = sms.getTimestampMillis() ;
            String d = new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss").format(new Date(date)) ;
            
            System.out.println("內容:" + body );
            System.out.println("地址:" + address );
            System.out.println("時間:" + d );
        }

清單里面配置合適的頻道:

<intent-filter>
                <action android:name="android.provider.Telephony.SMS_RECEIVED"/>      

</intent-filter>

例3:sd卡狀態監聽器

        //拿到動作
        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:應用程序的卸載和安裝監聽

//拿到動作
        String action  = intent.getAction() ;
        System.out.println(action);
        if("android.intent.action.PACKAGE_ADDED".equals(action)){
            System.out.println("應用程序安裝了");
            Toast.makeText(context, "應用程序安裝了", 0).show() ;
        }else if("android.intent.action.PACKAGE_REMOVED".equals(action)){
            System.out.println("應用程序卸載了");
            Toast.makeText(context, "應用程序卸載了", 0).show() ;
        }else if("android.intent.action.PACKAGE_REPLACED".equals(action)){
            System.out.println("應用程序覆蓋安裝了");
            Toast.makeText(context, "應用程序覆蓋安裝了", 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>


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

石景山区| 绥化市| 永嘉县| 冕宁县| 安康市| 渭源县| 洞口县| 高淳县| 盘锦市| 竹北市| 蚌埠市| 犍为县| 长丰县| 东安县| 遵化市| 吉首市| 临夏市| 七台河市| 南川市| 台北市| 长子县| 桃源县| 祁连县| 石楼县| 卢龙县| 舒兰市| 和田县| 鄯善县| 天峨县| 鄂州市| 青州市| 句容市| 松原市| 沾益县| 青神县| 齐齐哈尔市| 资讯| 错那县| 郎溪县| 峨山| 永新县|