gpt4 book ai didi

android - Cordova android 插件中的 onRequestPermissionsResult

转载 作者:太空宇宙 更新时间:2023-11-03 13:43:43 25 4
gpt4 key购买 nike

我正在通过 Cordova 插件 (android) 访问相机。为此,我向用户请求权限。如果用户在 permission 对话框中单击“允许”,我必须启动相机。为此,在 native android 中,我重写了 onRequestPermissionsResult 方法,例如

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
switch (requestCode) {
case RequestCameraPermissionID: {
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
return;
}
try {
cameraSource.start(surfaceView.getHolder());
} catch (IOException e) {
e.printStackTrace();
}

}
}
break;
}
}

所以,我想在 Cordova 插件中使用 onRequestPermissionsResult。任何人都可以帮助我吗?

最佳答案

如果您将该方法放入您的插件 .java 文件中,它应该可以正常工作。偶有好documentation关于运行时权限的主题。请求权限的工作方式如下:

cordova.requestPermission(CordovaPlugin plugin, int requestCode, String permission);

回调方法如下所示:

public void onRequestPermissionResult(int requestCode, String[] permissions, int[] grantResults) throws JSONException {
... // you can find the whole example implementation in the docs
}

如果你不想自己实现这个,你可以随时使用这个方便的插件:cordova-plugin-android-permissions请求相机权限。

编辑(如何使用android-permissions插件):

var permissions = cordova.plugins.permissions;

permissions.hasPermission(permissions.CAMERA, function(status) {
if (status.hasPermission) {
// here you can savely start your own plugin because you already have CAMERA permission
}
else {
// need to request camera permission
permissions.requestPermission(permissions.CAMERA, success, error);

function error() {
// camera permission not turned on
}

function success(status) {
if (status.hasPermission) {
// user accepted, here you can start your own plugin
}
}
}
});

关于android - Cordova android 插件中的 onRequestPermissionsResult,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46445627/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com