Android Studio中声明的权限在哪里?

时间:2015-02-08 23:13:19

标签: android android-manifest android-permissions

我以前在我的应用清单中有呼叫保留,但我最近删除了它们。我改变了我的ACTION_CALL意图ACTION_DIAL,它不应该要求任何许可。问题是该应用程序仍然要求这些权限... 那么,为什么会发生这种情况呢?

提前致谢

编辑:我添加了一些代码:

基本上这是我的AndroidManifest.xml结构:

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

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

        <activity>
            (...)
        </activity>

        <receiver >
            (...)
        </receiver>

        <activity >
            (...)
        </activity>

        <activity>
            (...)
        </activity>

    </application>

</manifest>

我改变了源代码以避免使用任何权限:

    _call.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            if (_phone.getText().length() != 0) {
                String uri = "tel:" + _phone.getText();
                Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse(uri));
                startActivity(intent);
            }
        }

    });

我不知道logcat会对什么有用,导致“错误”是应用程序在我要安装时请求权限,而不是在运行时

2 个答案:

答案 0 :(得分:1)

您需要在AndroidManifest.xml

中添加此内容
<uses-permission android:name="android.permission.CALL_PHONE"/>
<uses-feature android:name="android.hardware.telephony" android:required="false" />

并像你一样使用Intent.ACTION_DIAL

here is official doc on permission

related answers

答案 1 :(得分:0)

请尝试其中一种解决方案:

  1. 检查清单的所有权限(您的应用文件夹)。某些库可能需要其他权限。在Android Studio中,您应该在项目模式下浏览清单(而不是左侧面板的包/ Android视图模式):project_name/src/main/manifest.xml

  2. 如果所有清单都已清除,请将use-feature android:required="false"添加到主项目清单中。这将告诉GP您的应用程序可以安装在没有电话的设备上,例如平板电脑。

  3. 像这样:

     <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.my.app"  >
    <uses-feature android:name="android.hardware.telephony" android:required="false"/>
    
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
    
        <activity>
            (...)
        </activity>
    
        <receiver >
            (...)
        </receiver>
    
        ...
    
    </application>
    

    1. 清理并重建您的项目
    2. 最后但并非最不重要的是,在将新版本上传到Google Play后,请尝试停用旧版本(如果google play保留这两个版本)。
    3. 最终,创建新项目并将源代码拖放到新项目中。