Android: перенаправление исходящих звонков - PullRequest
9 голосов
/ 10 сентября 2010

Я пытаюсь перенаправить исходящие вызовы на другой номер телефона на устройстве Android. Итак, я использую BroadcastReceiver, «слушающий» для намерения NEW_OUTGOING_CALL, в его методе onReceive () я использую метод setResultData (), чтобы изменить номер телефона.

Как это:

public void onReceive(Context arg0, Intent arg1) {

    setResultData("351978923221");

}

В эмуляторе все идет хорошо, но на моем реальном устройстве (дурацкий ZTE X850 с Android 2.1, я полагаю) этого не происходит, если вызывающий Intent происходит в Activity, которая является частью того же приложения. После появления экрана набора номера телефон завершает вызов.

Есть какие-нибудь мысли о том, почему это происходит?

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


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

Выдержка ...

    <receiver android:name=".OutgoingCallDetection" android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.NEW_OUTGOING_CALL"
                    android:priority="9999" />
        </intent-filter>
    </receiver>

</application>

<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />

1 Ответ

4 голосов
/ 15 сентября 2010

Я отключил набранный номер и набрал новый вызов.Он отлично работал на устройстве.

Это часть кода:

setResultData(null);
Uri uri = Uri.fromParts("tel", "!Number to be dialed!", null);
Intent newIntent = new Intent(Intent.ACTION_CALL, uri);
newIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(newIntent);

Надеюсь, это поможет.

...