無序廣播

最近我在網上學了Android中的一個知識點叫廣播,廣播分爲自定義廣播接受者和發送者。
配置廣播接受者:
1.在清單文件中配置(靜態廣播)
2.使用java 代碼(動態廣播)

靜態廣播(那個先安裝那個先接受到)
這裏寫圖片描述
動態廣播(是沒有打開就接受不到,打開才能接收到)
優先級:動態大於靜態

  @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        myReceived02 = new MyReceived02();
        intentFilter = new IntentFilter();
        intentFilter.addAction("com.android_20_send.0802");
    }
    @Override
    protected void onResume() {
        super.onResume();
        //註冊動態廣播
        registerReceiver(myReceived02,intentFilter);
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
        //註銷動態廣播
        unregisterReceiver(myReceived02);
    }

黏性廣播(這個解決了動態廣播沒有打開就接受不到的問題,只不過已經過時了)
要添加發送黏性廣播的權限

<uses-permission android:name="android.permission.BROADCAST_STICKY"></uses-permission> 

只要改一行就行了

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        et_main_01 = (EditText) findViewById(R.id.et_main_01);
        intent = new Intent();
        //給廣播起個名字
        intent.setAction("zking.com.android_20_send.599");
    }
    public void exit(View view){
        String context=et_main_01.getText().toString();

        //傳數據
        intent.putExtra("data",context);
        //發送廣播(無序的廣播)
//        sendBroadcast(intent);
        //發送黏性廣播
        sendStickyBroadcast(intent);

    }

系統廣播:
我自己在網上找了一個打電話的監聽
首先你要加一個讀取電話狀態的權限:

<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>

然後:

判斷是不是這個號碼
if (“android.intent.action.PHONE_STATE”.equals(intent.getAction())){ 
//獲取電話號碼 
String phone=intent.getStringExtra(“incoming_number”); 
Log.i(“test”,”有電話進來了,”+phone); 
//獲取電話管理者 
TelephonyManager manager= (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); 
//得到電話的狀態 
int s=manager.getCallState(); 
switch (s) { 
//電話打入
case TelephonyManager.CALL_STATE_RINGING: 
break; 
//電話接通 
case TelephonyManager.CALL_STATE_OFFHOOK: 
break; 
//電話掛斷
case TelephonyManager.CALL_STATE_IDLE: 
break; 
} 
} 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章