我们正在用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才发生这种现象
答案 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.";
}
}