Android3.6 手动注册广播接收者权限

Android广播拦截拨号

public class MainActivity extends AppCompatActivity {
    private EditText etNumber;
    private Button bnt;
    private SharedPreferences sharedPreferences;
    private OutCallReceiver outCallReceiver;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        etNumber = (EditText) findViewById(R.id.et_number);
        bnt = (Button) findViewById(R.id.bnt);
        //创建SharedPreferences对象实例
        sharedPreferences = getSharedPreferences("config", MODE_PRIVATE);
        outCallReceiver = new OutCallReceiver();
        IntentFilter intentFilter=new IntentFilter(Intent.ACTION_NEW_OUTGOING_CALL); //动态注册
        intentFilter.setPriority(Integer.MAX_VALUE);
        registerReceiver(outCallReceiver, intentFilter);
    }

    public void click(View view) {
        //获取用户输入的号码
        String number = etNumber.getText().toString().trim();
        //创建Editor对象,保存用户输入的拦截号码
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putString("number", number);
        editor.commit();
        Toast.makeText(this, "保存成功", Toast.LENGTH_LONG).show();


    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        //取消动态注册
        unregisterReceiver(outCallReceiver);
    }
}

OutCallReceiver 创建类继承BroadcastReceiver

public class OutCallReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        // TODO: This method is called when the BroadcastReceiver is receiving
        // an Intent broadcast.

       //获取拨打的拦截号码
        String callNumber = getResultData();
        //创建SharedPreferences对象,获取该对象中存储的号码
        SharedPreferences sharedPreferences = context.getSharedPreferences("config", Context.MODE_PRIVATE);
        String number = sharedPreferences.getString("number", "");
        if (callNumber.equals(number)) {
            Log.i("拦截号码:","已拦截下号码"+number);
            //清空号码
            setResultData(null);
        }


    }
}

手动注册广播

手动注册广播权限
AndroidManifest代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值