0

ブロードキャストのイベントで電話をかけようとしています。現在、ブロードキャストレシーバーの onreceive() メソッドから別のアクティビティを呼び出しています。そのアクティビティでは、このインテントを使用しています

Intent callIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel"+num));
     callIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
     con.startActivity(callIntent);

問題は、起動直後に通話が切断されることです。Galaxy nexus 4.1.1でこれを試していますが、次の権限を使用しました:

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

私はアンドロイドの初心者で、どんな助けも歓迎されます。

通話が自動的に終了すると、LogCat に次のように記録されます。

ActivityManager(387): START u0 {act=android.intent.action.CALL dat=tel:xxxxxxxxxxxxx flg=0x10000000 cmp=com.android.phone/.OutgoingCallBroadcaster} from pid 6329

 I/ActivityManager(387): START u0 {act=com.android.phone.SIP_SELECT_PHONE dat=tel:xxxxxxxxxxxxx flg=0x10000000 cmp=com.android.phone/.SipCallOptionHandler (has extras)} from pid 577

D/CallController(577): placeCall()...  intent = Intent { act=android.intent.action.CALL dat=tel:xxxxxxxxxxxxx (has extras) }

 I/AudioService(387):  AudioFocus  requestAudioFocus() from AudioFocus_For_Phone_Ring_And_Calls

 E/audio_hw_primary(131): Entering IN_CALL state, in_call=0

 E/audio_hw_primary(131): Opening modem PCMs

 I/LocalDevicePlayback(6366): pause: transient=false, currentPos=-1

D/PhoneUtils(577): placeCall()... number: xxxxxxxxxxxxx, GW: null, emergency? false

4

1 に答える 1

0

最後にコードをテストしましたが、少し変更しただけで問題なく動作していました。:問題は、の後に a を付ける必要があることだと思いますtel。以下は、修正されたコードです..

String url = "tel:123456789";
            Intent dialIntent = new Intent(Intent.ACTION_CALL, Uri.parse(url));
            dialIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(dialIntent);
于 2012-11-29T05:43:27.637 に答える