android - 登录前处理“允许相机访问设备的位置”
问题描述
我正在开发一个使用手机相机拍照的 Android 应用程序。首次在模拟器上安装和启动相机时,需要以下权限:
这对应用程序有点破坏性。我已经在清单上设置了其他权限:
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
在登录前的主要活动中:
private boolean checkPermissions() {
if ( ContextCompat.checkSelfPermission( getApplicationContext(),
Manifest.permission.CAMERA ) != PackageManager.PERMISSION_GRANTED ||
ContextCompat.checkSelfPermission( getApplicationContext(),
Manifest.permission.WRITE_EXTERNAL_STORAGE ) != PackageManager.PERMISSION_GRANTED ||
ContextCompat.checkSelfPermission( getApplicationContext(),
Manifest.permission.READ_EXTERNAL_STORAGE ) != PackageManager.PERMISSION_GRANTED ) {
return false;
}
return true;
}
private void requestPermission() {
ActivityCompat.requestPermissions( this,
new String[]{ Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE },
PERMISSION_REQUEST_CODE );
}
在允许用户登录之前,有没有办法让请求“允许相机访问此设备的位置”以及我的其他权限?
我还尝试请求获得良好位置的许可:
private boolean checkPermissions() {
if ( ContextCompat.checkSelfPermission( getApplicationContext(),
Manifest.permission.CAMERA ) != PackageManager.PERMISSION_GRANTED ||
ContextCompat.checkSelfPermission( getApplicationContext(),
Manifest.permission.WRITE_EXTERNAL_STORAGE ) != PackageManager.PERMISSION_GRANTED ||
ContextCompat.checkSelfPermission( getApplicationContext(),
Manifest.permission.READ_EXTERNAL_STORAGE ) != PackageManager.PERMISSION_GRANTED ||
ContextCompat.checkSelfPermission( getApplicationContext(), Manifest.permission.ACCESS_FINE_LOCATION ) != PackageManager.PERMISSION_GRANTED) {
return false;
}
return true;
}
private void requestPermission() {
ActivityCompat.requestPermissions( this,
new String[]{ Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.ACCESS_FINE_LOCATION },
PERMISSION_REQUEST_CODE );
}
这事先授予了我的应用程序而不是相机的权限,但这并不能真正解决我的问题。任何建议表示赞赏。
解决方案
抱歉回复晚了,但我自己对此有点困惑:
我认为这实际上不是您的应用程序请求许可,而是安卓相机应用程序请求许可,所以没有太多可做的。如果您要在干净的模拟器上启动相机应用程序,您会得到相同的结果。
希望您的应用程序用户在安装您的应用程序之前已经使用过相机,这应该不是问题。:)
推荐阅读
- javascript - 本地库导出的 IntelliSense 未显示 - JS / Yarn
- iphone - iPhone 12 mini 硬件规格
- r - 使用扫描功能比较行 - 如何正确执行?
- sql - 计算每个用户的某个值改变了多少次
- python - 用户无法创建新标签
- javascript - 我有一个 React 自定义钩子,在初始化状态后我想用一些默认参数调用它。你能帮我弄清楚怎么做吗?
- excel - 如何使用 Access 避免从 Excel 中的公式导入错误
- angular - 如何循环遍历角度 6 中的对象数组?
- google-cloud-platform - 云构建触发器不再触发
- unity3d - 如何统一将Mesh转换为MeshFilter