从广播接收器发出电话?

时间:2012-11-29 05:33:21

标签: android android-intent

我正试图在广播的情况下发起一个电话。当我从广播接收器的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

1 个答案:

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