- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在通过 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/
我正在尝试对我的 Activity 的权限结果进行验证: class MainActivity : FlutterActivity() { //... override fun onReq
Marshmallow 运行时权限 onRequestPermissionsResult 在运行 playstore Build Apk 时也没有被调用,但正常调试 Apk 工作正常。任何人都可以帮助
我想请求为 Marshmallow 写入外部存储的权限。我看不到任何覆盖 onRequestPermissionsResult 的选项。我可以调用 requestPermissions。我创建了以下方
我正在为 adobe Air 创建一个库,它在类(class)中有一个 Activity ,我可以通过方法 getActivity() 访问这个 Activity ,但我如何才能收听 onReques
我是一名游戏开发者,不擅长 android。我想创建一个“扩展服务”的库类,用于发送 GPS 位置。 虽然我将 onRequestPermissionsResult 保留在 “MainActivity
我的 Android 应用程序需要请求位置服务许可。我这样做: ActivityCompat.requestPermissions(this, new String[]{
我用这段代码在 fragment 中请求权限 requestPermissions(new String[]{android.Manifest.permission.READ_EXTERNAL_STO
我试图让 onRequestPermissionsResult() 触发,这样我就可以在收到覆盖权限后开始运行我的应用程序。不幸的是,由于未发送 toast ,我似乎无法调用 onRequestPer
我正在使用运行时权限请求,但存在问题。似乎无限调用了回调方法onRequestPermissionsResult。所以当用户拒绝请求时,应用程序没有响应.. 每次用户单击“拒绝”时,权限对话框都会重新
我正在使用 Xamarin 和 mvvmcross 开发 Android 应用程序。对于 Android 6.0,我成功请求运行时权限,运行良好,但我无法访问我的 MainActivity 代码,所以
我有一个奇怪的错误,它让我发疯。我正在开发 Android Marshmallow,并且正在实现新的权限。当我单击“登录”按钮时,我会检查用户是否具有 GPS 权限。如果没有,我请求他们。代码的工作方
我正在尝试实现 Marshmallow 的权限支持,但从未调用我在“onRequestPermissionsResult”中的代码。代码的“onCreate”和“onMapReady”部分工作正常。检
在我的 Activity 页面之一的 fragment 中,我想获得用户的许可并在授予许可后执行一些操作,但是 onRequestPermissionsResult 不工作,之后我没有看到任何日志授予
没有调用 onRequestPermissionsResult() 的任何原因? 在 Activity A 中,我有 requestPermission(Permission A, Permissio
当我使用 onRequestPermissionsResulti 时,保持 super 有用吗? @Override public void onRequestPermissionsResult(in
我有一个扩展 Activity 并实现 IOnRequestPermissionsResultCallback 的类。 我想使用 OnRequestPermissionResult 并按照 Xamar
我写了Permission类,这里有askMicrophonePermission方法。 在askMicrophonePermission中,我使用了ActivityCompat.requestPer
当我想在 AsyncTask 中使用 onRequestPermissionsResult() 时,出现错误。我必须在 Android 6.0 中使用权限。 @Override public void
我试图实现从存储中写入和读取的请求权限。一切正常,但今天 Android 向我展示了 onRequestPermissionsResult(...) 方法已被弃用。 StackOverflow 中有很
我在 android 权限方面遇到了一些问题。问题是每次调用 onRequestPermissionsResult 时都会调用 onResume,即使用户已经说过“不再询问”。 一个例子: @Ov
我是一名优秀的程序员,十分优秀!