запуск активности от приемника вещания, который прослушивает исходящий вызов - PullRequest
7 голосов
/ 19 июня 2011

Я пытаюсь запустить действие от приемника вещания, который прослушивает исходящий вызов 5556. Проблема в том, что действие не запускается, но вызывается встроенное действие набора номера, я изменил приоритет намерениядо 100 но безрезультатно.Как получить активность для запуска по номеру вместо встроенной функции вызова?Вот код:

package com.messageHider;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;

public class launchReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        String number=intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
        String compare_num="5556";
        if(number.equals(compare_num))
        {
            Intent myintent=new Intent(context,messageHider.class);
            myintent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(myintent);
            abortBroadcast();
        }
    }

}

Файл манифеста:

<receiver android:name=".launchReceiver">
    <intent-filter android:priority="0">
        <action android:name="android.intent.action.NEW_OUTGOING_CALL"/>
    </intent-filter>
</receiver>

Ответы [ 2 ]

3 голосов
/ 28 ноября 2011

Вместо прерывания трансляции с помощью abortBroadcast ();используйте setResultData (null), чтобы завершить вызов после запуска вашей деятельности.

3 голосов
/ 03 сентября 2011

В вашем манифесте вам требуется одно разрешение (согласно документам):

Вы должны иметь разрешение PROCESS_OUTGOING_CALLS, чтобы получить это Намерение.

И это

"android.permission.PROCESS_OUTGOING_CALLS"

Также прямо из документов:

Любой BroadcastReceiver, получающий это намерение, не должен прерывать трансляцию.

А вот ссылка на страницу, где я получил информацию:

http://developer.android.com/reference/android/content/Intent.html

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