で発信通話を聞いていBroadcastReceiver
ます。
特定の電話をかけると、特定の番号および/または条件が満たされます - それは問題ではありません。私は電話を傍受します。
その後、別の番号に新しい電話をかけたいと思います。と、ここで困ってしまいます。コールは発信されません - 何も起こりません - 新しいアクティビティが開始されますが、コールは開始されません。空のビュー、それだけです。
ちなみにBroadcastReceiverはインテントを受け取り、CallInitiatingActivity.onCreate()
呼び出されて実行されます。
ブロードキャストリスナー
public class OutgoingCallListener extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (conditionsAreMet()) {
setResultData(null); //terminate current call
Inetent intent = new Intent(context, CallInitiatingActivity.class)
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
startActivity(intent);
}
}
}
通話開始アクティビティ
public class CallInitiatingActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + number));
startActivity(intent);
}
}
使用する許可:
<uses-permission android:name="android.permission.CALL_PHONE"/>
デバッグ レベルの疑わしいログ:
checkAndCopyPhoneProviderExtras: some or all extras are missing.
行番号 2074 で、このクラスのメソッドまでたどりました。