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代码

原创文章 5 获赞 0 访问量 840

猜你喜欢

转载自blog.csdn.net/shmilyhq/article/details/105900793