当前位置: 首页 > 知识库问答 >
问题:

CodenameOne:Capture.CapturePhoto()请求错误的权限?

彭仲卿
2023-03-14

CodenameOne的capture.capturePhoto(1000,-1)似乎可以很好地使用Android TargetSDKVersion21权限。但在23号,它错误地要求一个

允许[...]访问设备上的照片、媒体和文件?

权限,但由于Android.permission.camera丢失而失败。

(没有摄像头的模拟器请求媒体文件--会不会有什么东西搞混了?)

更新(DDMS输出)

08-09 15:13:47.866: W/ActivityManager(1676): Permission Denial: starting Intent { act=android.media.action.IMAGE_CAPTURE flg=0x4000003 cmp=com.sec.android.app.camera/.Camera clip={text/uri-list U:file:///storage/emulated/0/Pictures/XXX/IMG_20170809_151347.jpg} (has extras) } from ProcessRecord{f736f3f 20079:com.XXX/u0a338} (pid=20079, uid=10338) with revoked permission android.permission.CAMERA
08-09 15:13:47.876: W/System.err(20079): java.lang.SecurityException: Permission Denial: starting Intent { act=android.media.action.IMAGE_CAPTURE flg=0x4000003 cmp=com.sec.android.app.camera/.Camera clip={text/uri-list U:file:///storage/emulated/0/Pictures/XXX/IMG_20170809_151347.jpg} (has extras) } from ProcessRecord{f736f3f 20079:com.XXX/u0a338} (pid=20079, uid=10338) with revoked permission android.permission.CAMERA
08-09 15:13:47.896: E/ConfigFileUtils(3071): Failed to read config file: /data/data/com.google.android.gms/app_chimera/current_modulesets.pb: open failed: ENOENT (No such file or directory)
08-09 15:13:47.906: W/System.err(20079):    at android.os.Parcel.readException(Parcel.java:1620)
08-09 15:13:47.906: W/System.err(20079):    at android.os.Parcel.readException(Parcel.java:1573)
08-09 15:13:47.906: W/System.err(20079):    at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:3131)
08-09 15:13:47.906: W/System.err(20079):    at android.app.Instrumentation.execStartActivity(Instrumentation.java:1540)
08-09 15:13:47.906: W/System.err(20079):    at android.app.Activity.startActivityForResult(Activity.java:4283)
08-09 15:13:47.906: W/System.err(20079):    at android.app.Activity.startActivityForResult(Activity.java:4230)
08-09 15:13:47.906: W/System.err(20079):    at com.codename1.impl.android.CodenameOneActivity.startActivityForResult(CodenameOneActivity.java:576)
08-09 15:13:47.906: W/System.err(20079):    at com.codename1.impl.android.c.a(AndroidImplementation.java:5869)
08-09 15:13:47.906: W/System.err(20079):    at com.codename1.u.p.b(Display.java:3109)
08-09 15:13:47.906: W/System.err(20079):    at com.codename1.b.a.a(Capture.java:77)
08-09 15:13:47.906: W/System.err(20079):    at com.codename1.b.a.a(Capture.java:125)
08-09 15:13:47.906: W/System.err(20079):    at com.grandgreat.XXX.ai.b(SettingsForm.java:98)

(settingsform.java:98字符串路径=capture.capturephoto(1000,-1);)

共有1个答案

彭存
2023-03-14

这应该起作用了,因为我们使用intent,它完成了捕获的所有工作,所以我们甚至不请求该权限。请看这里的代码。

然而,正如这个堆栈溢出问题所解释的那样,Android M Camera意图+权限bug?

如果应用程序有摄像头许可,意图可能无法防止似乎是一个不当行为。又是意图系统的一个可怕的边缘案例...

 类似资料:
  • 我正在尝试从Google API获取一个授权代码,如步骤1(设置授权参数)所述(HTTP/REST)。 正如我在那里读到的,谷歌授权服务器有以下强制性查询字符串参数:client_id、redirect_uri和范围,所以我的href看起来像这样: <代码>https://accounts.google.com/o/oauth2/v2/auth?client_id=123002756467-dmq

  • 我正在使用实现一个联系人应用程序。现在,我正试图通过发送以下格式的put请求来更新联系人 我将XML作为字符串发送,作为请求的主体。这是我的xmlString(请求主体) 我写了下面的代码来发送更新联系人的PUT请求。 当我试图在中发送请求时,联系人更新成功。但是当我试图运行上面的程序时,我得到了 400错误请求错误 我不知道我哪里出错了。任何帮助都将不胜感激!

  • 我有一个基于Spring Web model view controller(MVC)框架的项目。Spring Web模型-视图-控制器(MVC)框架的版本是3.2.8 我有这个控制器 这个URL一切正常:

  • 目前从Angular JS controller中,我试图将JSON数据发送到后端服务。但是我有400个错误的请求错误。 在Controller中,我试图通过http服务发送数据,如下所示:

  • 我得到了这个错误,有什么想法会导致它吗?我试图发送一个DTO,它有一个扩展抽象类的对象列表,我想这个问题可能是因为DTO中的列表,还是因为抽象类的子类?

  • 我正在为一个项目使用Hackerrank API。查看官方文档,点击这里! 在他们的网站上有一个使用UNIREST的例子, 由于我使用的是axios,所以我将其转换为类似的axios代码,如下所示: 我希望这只适用于示例中所示的示例,但它给我带来了以下错误: 请求失败,状态代码为400 错误:请求失败,状态代码为400 在createError(createError.js:16) 在sett(s