Android ACTION_CALL 不起作用[重复]

Posted

技术标签:

【中文标题】Android ACTION_CALL 不起作用[重复]【英文标题】:Android ACTION_CALL not working [duplicate] 【发布时间】:2016-05-19 21:20:37 【问题描述】:

由于某种原因,ACTION_CALL 在我的应用程序中不起作用。我已将权限添加到清单中:

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

这是我从主要活动中调用 action_call 的地方:

case R.id.button2:
            intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:(+44)12345678900"));
            if(ActivityCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE)!= PackageManager.PERMISSION_GRANTED)
                Toast.makeText(this, "No permission to call!", Toast.LENGTH_SHORT).show();
                return;
            
startActivity(intent);
            break;

每次显示吐司并且不叫号码。任何帮助,将不胜感激! :)

清单代码:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.adamw_000.lab_1_intents" >

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

【问题讨论】:

请显示您呼叫requestPermissions()的代码,以向用户请求此权限。另外,您确定您的 &lt;uses-permission&gt; 元素位于清单中的正确位置吗?顺便说一句,我建议删除tel: 字符串中的空格,因为这可能会使拨号器感到困惑,当你到达那个点时。 已删除空格并添加清单权限的代码,我不调用请求权限,因为权限已在清单中给出 “我不调用请求权限,因为清单中已经给出了权限”——那是你的错误。调用checkSelfPermission() 的目的是查看用户是否授予了权限。在 Android 6.0 上,如果您的 targetSdkVersion 为 23 或更高,您确实不会自动获得此权限并需要请求它。有关详细信息,请参阅重复的问题。 我正在使用 api 22 编辑:nvm 我知道你在欢呼中要去哪里 【参考方案1】:

也许您应该将startActivity() 添加为

startActivity(intent);

编辑

我使用了这个代码:

intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel: (+44)12345678900"));
startActivity(intent);

而且效果很好……

试试这个,它对我也很有效,但它正在使用ACTION_DIAL

public static Intent newPhoneCallIntent(String phoneNumber)
    Intent callintent = new Intent(Intent.ACTION_DIAL);
    callintent.setData(Uri.parse("tel:"+phoneNumber));
    return callintent;

在您的Button 中添加:startActivity(newPhoneCallIntent("(+44)12345678900"));

【讨论】:

哎呀我的错!复制时已经在那里错过了那行现在添加它 @AdamW95 请看我的编辑 问题是用户必须授予 api 23+ 的权限,不过谢谢 :) @AdamW95 所以我的回答对你没有帮助?我删除答案还是你接受? @AdamW95 你可以在这里写一个详细的解决方案作为答案。它会帮助很多人

以上是关于Android ACTION_CALL 不起作用[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Android Studio 中未授予 Action_Call 权限

调用 Intent.ACTION_CALL 时出现 ActivityNotFoundException

Android开发之Intent.Action Android中Intent的各种常见作用【转】

如何挂断Android中的拨出电话?

Android开发,如何编程实现开启电话的免提功能?

SwipeRefreshLayout 在 Android 中不起作用