Android:重定向拨出电话

时间:2010-09-10 09:25:24

标签: java android redirect emulation

我正在尝试将拨出电话重定向到Android设备上的其他电话号码。所以,我使用BroadcastReceiver“监听”NEW_OUTGOING_CALL意图,在他的onReceive()方法中我使用setResultData()方法来改变电话号码。

像这样:

public void onReceive(Context arg0, Intent arg1) {

    setResultData("351978923221");

}

在模拟器中一切顺利,但在我的真实设备上(我认为是一款蹩脚的ZTE X850与Android 2.1相比),如果调用的Intent来自同一个应用程序中的一个Activity,则不会。出现拨号屏幕后,电话将终止呼叫。

有关为何会发生这种情况的任何想法?

注意:我知道我的问题与this one基本相同,但无论如何我选择再次提出问题,以提供有关错误的其他详细信息。


清单文件

摘录......

    <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 个答案:

答案 0 :(得分:4)

我切断了已拨电话并重新拨打了新电话。它在设备上完美运行。

这是代码部分:

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);

希望这有帮助。