【问题标题】:android.permission.PHONE_CALL is added in manifest but still got permission errorandroid.permission.PHONE_CALL 已添加到清单中,但仍然出现权限错误
【发布时间】:2014-12-15 08:03:10
【问题描述】:

我正在尝试使用 ACTION_CALL 意图来调用 USSD 代码。我已将 android.permission.PHONE_CALL 添加到清单文件中,但它不起作用并获得权限错误异常。 PS:如您所见,GPS 和 INTERNET 也有权限,它们工作正常。 以下是代码:

public void onClick(View v) {
    String encodedHash = Uri.encode("#");
    String number = "*140*1";
    Intent intent = new Intent(Intent.ACTION_CALL);
    intent.setPackage("com.android.phone");
    intent.setData(Uri.parse("tel:" + number + encodedHash));           
    try{
        startActivity(intent);
    } catch(Exception ex){
        Toast.makeText(getApplication(), ex.toString(), Toast.LENGTH_LONG).show();
    }
}

清单

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

    <uses-sdk
        android:minSdkVersion="17"
        android:targetSdkVersion="21" />

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.PHONE_CALL" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity .......

【问题讨论】:

  • 有什么异常?在此处添加日志
  • 权限是android.permission.CALL_PHONE,不是android.permission.PHONE_CALL

标签: android permissions call


【解决方案1】:

我认为您的文字拼写错误,请更改为以下内容: android.permission.CALL_PHONE

【讨论】:

  • 是的,他在我写回复的时候发帖了。
  • @DerGolem MikeM 应该将其发布为答案而不是评论!为此 +1
  • @DerGolem 哇!天哪,我不是故意在这里引起骚动的!我投票结束这个问题是一个错字。我只是想同时帮助 OP。就我而言,cmets 中的答案对于任何人来说都是公平的游戏。不用担心!
  • @MikeM。不用担心,您是第一个正确回答的人。所有功劳归您所有。
  • 谢谢你们。我的不好,但在写这个问题!通过删除 .android 文件夹并清理项目解决了该问题。这类问题让我抓狂。这可能是另一个问题,但我现在经常的工作是:重新启动计算机以解决识别设备的问题,清理项目以解决 Manifest 文件丢失问题,以及删除 .android 文件夹以解决其他问题!
【解决方案2】:

拨打电话的权限不是“android.permission.PHONE_CALL”而是“android.permission.CALL_PHONE”。 如需了解更多信息,请访问 Android Developer API 文档以获取 Manifest 权限。

Android Manifest permissions

【讨论】:

  • @MikeM 是这么说的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-07-09
  • 2019-06-01
  • 1970-01-01
  • 2019-11-29
  • 2017-12-20
  • 1970-01-01
  • 2019-08-06
相关资源
最近更新 更多