android api level 29的设备上首次安装申请相机权限,没有弹出授权的对话框怎么办?
已经在清单文件中声明相机权限
<uses-permission android:name="android.permission.CAMERA"/>
并且声明了与相机应用的交互规则:
<queries> <intent> <action android:name="android.media.action.IMAGE_CAPTURE"/> </intent> <intent> <action android:name="android.media.action.VIDEO_CAPTURE"/> </intent></queries>
然后在需要使用相机的地方也动态申请了相机授权,但是死活不弹出相机授权对话框(应用首次安装或者卸载重装都如此)。
public class TestActivity extends AppCompatActivity { private ActivityResultLauncher<Intent> faceActivityResultLauncher; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); // ... 省略代码 this.faceActivityResultLauncher = this.registerForActivityResult( new ActivityResultContracts.StartActivityForResult(), result -> { if (result.getResultCode() != Activity.RESULT_OK) { UiCommon.toast(this, "相机拍摄失败"); return ; } this.updateFace(this.face); } ); // 申请授权 ActivityCompat.requestPermissions(this, new String[] {Manifest.permission.CAMERA}, TEST_CODE); } @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); boolean isGranted = PermissionCommon.permissionResultHandle(this, requestCode, permissions, grantResults); switch (requestCode) { case TEST_CODE: if (!isGranted) { // 省略部分代码 ... Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); intent.putExtra(MediaStore.EXTRA_OUTPUT, uri); this.faceActivityResultLauncher.launch(intent); } break; default: break; } }}
这是为什么?该如何解决上述问题?
问题已解决,是连续申请权限导致的。上述代码没贴完整,问题如下:
public boolean checkPermissions() { PermissionCommon.requestStoragePermissions(this.activity); PermissionCommon.requestCameraPermissions(this.activity); if (!PermissionCommon.isHasStoragePermission(this.activity)) { UiCommon.toast(this.activity, "无文件存取权限"); return false; } if (!PermissionCommon.isHasCameraPermission(this.activity)) { UiCommon.toast(this.activity, "无相机权限"); return false; } return true; }
将权限合成一下一次性申请就可以了。
public boolean checkPermissions() { // 将存储和拍照权限合在一起申请 String[] permissions = new string[] {...}; PermissionCommon.requestPermissions(this.activity, permissions); if (!PermissionCommon.isHasPermissions(this.activity, permissions)) { UiCommon.toast(this.activity, "部分或全部权限未授予"); return false; } return true; }
我正在使用Spring5和Java8创建一个RESTful客户机,它将登录CoinBase并在给定的时间为我进行交易。我知道存在一个不受支持的用于Coinbase的Java SDK,我也在研究这些代码以寻找线索。 我正在我的Spring应用程序中使用CoinBase Oauth2客户端,到目前为止它非常成功。我使用回调URL进行授权调用。这将打开一个对话框,如果我已经登录,请我用MyApp授权我的
我一直在尝试实现运行时权限。下面是它的代码片段: RunTimePermissionsUtil。JAVA 在一个名为AddFileActivity的活动中,我在一个点击事件中实现了这个监听器,其代码如下: 所以,我所有的代码都会执行,它会进入onNeed权限()代码,其中,它会进入 但是,令人惊讶的是,在此之后,没有任何对话框要求获得摄像头的运行时权限,相反,对话框关闭并再次显示活动。 有没有人能
我编写了一个简单的应用程序,通过USB向连接到Android 4.0平板电脑的USB打印机发送命令。由于某些原因,我无法通过获取权限来声明接口和打开连接。以下是相关代码: 这是清单的相关部分: 我已将设备配置为,以便在连接打印机时启动我的应用,并在枚举期间找到该设备(onResume())并调用权限请求。但是,无论出于何种原因,我从未看到“请求权限”对话框(我在网上看过它的屏幕截图),也不会调用o
我正在尝试调用我的类来检查存储权限 但问题是,它不让我在一个类中实现它,我得到了以下错误- "类型权限的方法onRequest estPermissionsResult(int, String[], int[])必须覆盖或实现超类型方法" 类型权限的方法requestPermissions(字符串[],int)未定义 这是我的密码- }
本文向大家介绍Android 程序申请权限注意事项,包括了Android 程序申请权限注意事项的使用技巧和注意事项,需要的朋友参考一下 为Android 程序申请权限注意 Android系统提供为程序提供了权限申请,即在manifest中使用uses-permission来申请即可.实现起来非常简单,但是有些问题会随之浮出水面. 常见的现象是,有时候新加一个权限,(在Google Play上)程序
买家如何退换货? 1、功能路径 个人中心-我的订单-已发货-申请维权 2、操作流程 1、进入个人中心,找到订单 2、点击详情,进入订单详情页 3、点击申请维权,填写信息 4、提交 流程如下图: 5、买家填写相关处理方式、退款原因、退款金额、备注等信息后提交。 6、商家处理售后申请,打开后台-订单-售后服务 售后服务的列表显示项为商品信息、商品清单、订单金额、收货信息、买家、交易状态、操作。可根据下