Camera.TakePhoto()在使用GX15 U12生成的Android应用程序中产生安全异常(直到GX15 U11才发生)

时间:2018-10-09 22:23:25

标签: genexus-sd

我们正在用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:权限拒绝:启动意图{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-来自ProcessRecord {c7a0f9a 2736:ec.com.inalambrik.routik / u0a66}(pid = 2736,uid = 10066)的10-12--23-42-21-3331914767202.jpg}(有其他内容)},并且已撤消android权限。权限。相机

直到GX15 U11才发生这种现象

1 个答案:

答案 0 :(得分: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.";
    }
}