0

我们正在使用 Genexus 15 U12 为我们拍照的面板生成一个 android 代码。当面板打开时,应用程序停止并出现“安全异常”错误,错误行为“android.permission.CAMERA”。应用程序从不请求访问相机的权限。

AndroidManifest.xml 文件具有此权限。

在进入我们使用 api Camera.TakePhoto() 的面板之前,我们还需要做些什么来请求许可吗?

在 logcat 上显示此错误

10-12 23:42:21.376: E/AndroidRuntime(2736): 由: java.lang.SecurityException: Permission Denial: start Intent { act=android.media.action.IMAGE_CAPTURE flg=0x80003 cmp=com.android.camera /.Camera clip={text/uri-list U:content://ec.com.inalambrik.routik.file_provider/external/Android/data/ec.com.inalambrik.routik/files/Pictures/2018-10-12 --23-42-21-3331914767202.jpg} (有额外内容)} 来自 ProcessRecord{c7a0f9a 2736:ec.com.inalambrik.routik/u0a66} (pid=2736, uid=10066) 已撤销权限 android.permission.CAMERA

直到 GX15 U11 才出现此行为

4

1 回答 1

0

在外部对象上,我创建了以下方法:

public static String askForPermission(){
    try{            
        Log.d("PERMISSION", "askForPermission" );
        // Context context = MyApplication.getInstance();
        Context context = MyApplication.getAppContext();        

        // Launch Settings screen.
        /*Intent intent = new Intent();
        intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
        Uri uri = Uri.fromParts("package", context.getPackageName(), null);
        intent.setData(uri);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(intent);*/

        Intent intent = new Intent(context, InalambrikRequestPermissionActivity.class);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(intent);

        return "";
    }catch(Exception e){
        e.printStackTrace();
        return "Por favor intentar nuevamente. Si el problema persiste, debe ir Ajustes del dispositivo > Aplicaciones > Ir a detalles de la aplicación > Habilitar los permisos manualmente.";
    }
}
于 2018-10-17T19:31:46.653 回答