我正试图在广播的情况下发起一个电话。当我从广播接收器的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" />
我是Android的初学者,欢迎任何帮助。
当呼叫自动结束时,这将出现在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
的
答案 0 :(得分:0)
我在最后测试了你的代码,经过一点点改动后,我的工作正常。我认为问题是您需要在:
之后加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);