问题描述
我有一个Qt android应用程序,它需要CAMERA和WRITE_EXTERNAL_STORAGE权限。所以我有以下内容:
public class AppActivity extends QtActivity
{
private static final String[] PERMISSIONS = {
android.Manifest.permission.WRITE_EXTERNAL_STORAGE,android.Manifest.permission.CAMERA
};
private void CheckPermissions()
{
...
requestPermissions(PERMISSIONS,PERMISSION_ALL);
...
}
...
}
没问题,在安装并启动我的应用程序后,它会要求这两个权限。
但是,安装成功后,会出现一个列出一些权限的屏幕,请参见下面的屏幕截图。
如何从此屏幕中删除“麦克风”和“位置”这两个权限(它们也显示在应用程序的“设置参数”屏幕中),因为我的应用程序中不需要这两个权限?
我尝试将以下内容放入AndroidManifest.xml:
<uses-permission tools:node="remove" android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission tools:node="remove" android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission tools:node="remove" android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission tools:node="remove" android:name="android.permission.RECORD_AUdio" />
但它不会改变任何东西。
解决方法
好,所以这是Qt特定的权限处理方式。
在Qt的主要为项目生成的AndroidManifest.xml文件中,有以下注释:
<!-- The following comment will be replaced upon deployment with default permissions based on the dependencies of the application.
Remove the comment if you do not require these default permissions. -->
所以...只需删除评论!并放置您需要的权限。据说,依赖项中的所有权限都将被删除,因此,只有您的权限才会出现在应用程序安装中。