最近我在網上學了Android中的一個知識點叫廣播,廣播分為自定義廣播接受者和發送者。 配置廣播接受者: 1.在清單文件中配置(靜態廣播) 2.使用java 代碼(動態廣播)
靜態廣播(那個先安裝那個先接受到) 動態廣播(是沒有打開就接受不到,打開才能接收到) 優先級:動態大于靜態
黏性廣播(這個解決了動態廣播沒有打開就接受不到的問題,只不過已經過時了) 要添加發送黏性廣播的權限
<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; } }新聞熱點
疑難解答