无序广播

最近我在网上学了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; 
} 
} 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章