最近我在網(wǎng)上學了Android中的一個知識點叫廣播,廣播分為自定義廣播接受者和發(fā)送者。 配置廣播接受者: 1.在清單文件中配置(靜態(tài)廣播) 2.使用java 代碼(動態(tài)廣播)
靜態(tài)廣播(那個先安裝那個先接受到)
動態(tài)廣播(是沒有打開就接受不到,打開才能接收到) 優(yōu)先級:動態(tài)大于靜態(tài)
黏性廣播(這個解決了動態(tài)廣播沒有打開就接受不到的問題,只不過已經(jīng)過時了) 要添加發(fā)送黏性廣播的權(quán)限
<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(); //傳數(shù)據(jù) intent.putExtra("data",context); //發(fā)送廣播(無序的廣播)// sendBroadcast(intent); //發(fā)送黏性廣播 sendStickyBroadcast(intent); }系統(tǒng)廣播: 我自己在網(wǎng)上找了一個打電話的監(jiān)聽 首先你要加一個讀取電話狀態(tài)的權(quán)限:
<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); //得到電話的狀態(tài) int s=manager.getCallState(); switch (s) { //電話打入case TelephonyManager.CALL_STATE_RINGING: break; //電話接通 case TelephonyManager.CALL_STATE_OFFHOOK: break; //電話掛斷case TelephonyManager.CALL_STATE_IDLE: break; } }新聞熱點
疑難解答