проблема с широковещательной передачей Android - PullRequest
0 голосов
/ 09 января 2012

Я разрабатываю приложение, которое блокирует все исходящие вызовы, а затем после блокировки этого вызова инициируется еще один новый вызов на заранее определенный номер ...

Моя проблема заключается в том, что, когда я блокирую вызов с использованиемшироковещательный приемник, второй вызов, который я программно инициирую, также блокируется ...

Есть ли какой-либо метод отмены регистрации трансляции после блокировки первого вызова, или любой другой метод или метод ???

Это мой вещательный приемник, который я реализовал для своего приложения ...

public class CallListenerActivity extends BroadcastReceiver {

Uri uri;

    @Override
    public void onReceive(Context context, Intent intent) {
            Bundle bundle = intent.getExtras();

            if(bundle == null)
                return;


            String phonenumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);

            Log.i("@@@OutgoingCallReceiver",phonenumber);
            Log.i("@@@OutgoingCallReceiver",bundle.toString());

            String info = "Detect Calls sample application\nOutgoing number: " + phonenumber;

           Toast.makeText(context, info, Toast.LENGTH_LONG).show();



           String phoneNumber = "5556";
           Uri uri = Uri.fromParts("tel", phoneNumber, null);

           Intent callIntent = new Intent(Intent.ACTION_CALL, uri);
           callIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
           context.startActivity(callIntent);




    }

Ответы [ 2 ]

1 голос
/ 09 января 2012

Вы можете попробовать снова запустить исходное действие (CallListenerActivity? То, которое зарегистрировало широковещательный получатель), используя флаг, сохраненный как дополнительный в намерении.Оцените намерение в своей деятельности и отмените регистрацию приемника вещания, если вы видите флаг в дополнениях.Затем запустите операцию вызова, как показано в коде вашего примера.

1 голос
/ 09 января 2012

Вы можете использовать сохранение чека, когда вы инициируете вызов и после завершения вызова отметьте его. Для этой проверки вы можете использовать SharedPreference.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...