1

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

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

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

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

对不起我的英语

4

2 回答 2

1

试试这个:

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

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

您也可以尝试使用ACTION_DIAL, 而不是ACTION_CALL. 您还需要此权限,但将其放在 Application 标记之前AndroidManifest

<uses-permission android:name="android.permission.CALL_PHONE" />
于 2013-07-16T12:25:10.217 回答
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查看呼叫何时结束,然后恢复您当前的活动。描述了一些非常好的解决方案..

于 2013-07-16T12:34:18.920 回答