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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章