我以前在我的应用清单中有呼叫保留,但我最近删除了它们。我改变了我的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会对什么有用,导致“错误”是应用程序在我要安装时请求权限,而不是在运行时
答案 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
答案 1 :(得分:0)
请尝试其中一种解决方案:
检查清单的所有权限(您的应用和库文件夹)。某些库可能需要其他权限。在Android Studio中,您应该在项目模式下浏览清单(而不是左侧面板的包/ Android视图模式):project_name/src/main/manifest.xml
。
如果所有清单都已清除,请将use-feature
android:required="false"
添加到主项目清单中。这将告诉GP您的应用程序可以安装在没有电话的设备上,例如平板电脑。
像这样:
<?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>