背景中的INTENT.ACTION_CALL

时间:2013-07-16 12:13:13

标签: android android-intent android-service

我需要在我的应用程序后台调用,所以当用户点击一个按钮时,它应该开始在后台调用,用户会知道他正在呼叫,但他不会看到拨号器,他会看到该应用程序,在呼叫时重现声音。

基本上我想要的是在不退出活动的情况下拨打电话

我尝试了一项服务,但它不起作用

 Intent callIntent = new Intent(Intent.ACTION_CALL);
 callIntent.setData(Uri.parse("tel:123456789"));
 startService (callIntent);

抱歉我的英文

2 个答案:

答案 0 :(得分:1)

试试这个:

Intent callIntent = new Intent(Intent.ACTION_CALL);
 callIntent.setData(Uri.parse("tel:123456789"));
 startActivity(callIntent);

* 注意startActivity(callIntent),而不是startService(callIntent);

您还可以试用ACTION_DIAL,而不是ACTION_CALL。您还需要此权限,但请将其放在AndroidManifest

中的Application标记之前
<uses-permission android:name="android.permission.CALL_PHONE" />

答案 1 :(得分:1)

代码背后:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    call();
}

private void call() {
    try {
        Intent callIntent = new Intent(Intent.ACTION_CALL);
        callIntent.setData(Uri.parse("tel:123456789"));
        startActivity(callIntent);
    } catch (ActivityNotFoundException e) {
        Log.e("sample call in android", "Call failed", e);
    }
}

<强>的Manifest.xml
添加..

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

或者,

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

修改 好吧, tasomaniac 对OP现有的当前活动提出了一个很好的观点。

  

基本上我想要的是拨打电话而不退出活动

但是在android中的电话接口的呼叫状态期间不可能做任何事情。一个可能的好解决方案是PhoneStateListener来看看呼叫何时结束然后恢复你当前的活动。一些非常好的解决方案被描述..