java - 我创建了一个默认拨号器应用程序,但 ACTION_CALL Intent 在某些设备上不起作用

标签 java android android-intent

我创建了一个默认拨号器应用,但 ACTION_CALL Intent 在某些设备上不起作用。

除非我将我的应用程序设置为默认手机应用程序,否则 ACTION_CALL Intent 效果很好。但是,如果我的应用程序被设置为默认手机应用程序,它将无法工作。

我认为我的应用程序有问题。不过,它在除三星 Galaxy S10E 之外的大多数设备上都能正常工作(在其他 Android 9.0 设备上也能正常工作)。

如果我将我的应用设置为默认拨号器应用并发送 ACTION_CALL Intent ,则会出现一个屏幕,我可以在其中选择除我的应用之外的电话应用(使用完整操作)

设备没有问题。下面链接中的应用程序运行良好。( https://play.google.com/store/apps/details?id=com.skt.prod.dialer )

请帮助我。

/* call method */
void doCall(String phoneNo) {
    String tel = "tel:" + phoneNo;
    Intent callIntent = new Intent(Intent.ACTION_CALL);
    callIntent.setData(Uri.parse(tel));
    this.startActivity(callIntent);
}
/* InCallService */
<service
    android:name=".CallService"
    android:permission="android.permission.BIND_INCALL_SERVICE">
    <meta-data
        android:name="android.telecom.IN_CALL_SERVICE_UI"
        android:value="true" />

    <intent-filter>
        <action android:name="android.telecom.InCallService" />
    </intent-filter>
</service>
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.MANAGE_OWN_CALLS" />
<uses-permission android:name="android.permission.READ_CALL_LOG" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />

This link is not my app, but this issue is the same.

最佳答案

我最好建议在构造 Intent 调用特定号码时使用 ACTION_DIAL 而不是 ACTION_CALL。使用 ACTION_DIAL,您在应用程序中不需要调用权限,因为 ACTION_DIAL 将使用已输入的号码打开拨号器,并进一步允许用户决定是否实际调用电话或在调用之前修改电话号码或根本不调用。并检查 list 权限。

Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:" + "Your Phone_number"));// Initiates the Intent 
startActivity(intent);

关于java - 我创建了一个默认拨号器应用程序,但 ACTION_CALL Intent 在某些设备上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57455941/

相关文章:

java - 在 android 中出现关于 sdk 版本的错误

java - CountDownTimer 上的 NullPointerException

java - 以管理员身份运行 Alfresco Java 代码

java - HSQLDB-Database 设置相对于项目的 URL/DB

android - 为什么当我删除 @SuppressLint "only be called from with the same library group"时 Android Studio 会显示 ("RestrictedApi")?

android - 使用 ACTION_VIEW Intent Action 启动文件

java - JUnit IO 测试

android - MediaPlayer 信息/警告 (1, 0)

Android 模拟器 - Intent.createChooser 在打开 pdf 类型文档时显示 "No application can perform this action"

java - Intent 内 android.util.ArrayMap 中的 ClassNotFoundException