相关疑难解决方法(0)

在Android中使用相机手电筒

我正试图在小部件中使用相机LED手电筒.我已经找到了关于这个主题的几个主题(即后面提到的那个 ......),现在我正试图控制灯光使用:

Camera cam = Camera.open();     
Parameters p = cam.getParameters();
p.setFlashMode(Parameters.FLASH_MODE_TORCH);
cam.setParameters(p);
cam.release();
Run Code Online (Sandbox Code Playgroud)

在AndroidManifest.xml中尝试了不同的权限,目前我有:

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT"/>
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-feature android:name="android.hardware.camera.flash" />
Run Code Online (Sandbox Code Playgroud)

我正在Galaxy Tab上测试这个,因为我手头没有任何其他Android设备:灯没亮.所以我现在有几个问题:

  1. 有没有办法测试仿真器中的led灯行为?
  2. 我在这里做错了吗?
  3. 根据这个处理相同问题的问题,它在Galaxy Tab上的工作方式不同.怎么样?
  4. 最后,如果它的工作方式不同,我开始怀疑它是否仅仅是Galaxy Tab或其他设备是否也使用不同的方法.那时很难测试,对我来说似乎很奇怪.

感谢您的任何见解!

顺便说一句,我很快就通过快速设置进行了测试,这里提到了几次.手电筒也不能用于快速设置.

请注意,Galaxy Tab stil使用android 2.2.我看到2.2和2.3之间有一些变化.

评论:我知道它必须以某种方式工作,因为我发现市场上的其他应用程序与Galaxy Tab完美配合.

评论2:如果我设置了cam.setParameters(p); 并使用getFlashMode()直接向相机询问当前状态,它正确返回FLASH_MODE_TORCH.但是,如果我释放相机并重新打开它,它将返回FLASH_MODE_OFF.这几乎就像Camera对象知道了请求,但并没有真正将它传递给硬件!?

-

康斯坦丁评论后,我删除了cam.release(); 部分.他是对的,如果你松开相机,设置就不会持续存在.如果再次使用cam.open(),您将获得一个关闭灯的新实例.尽管如此,光还没有在星系标签上工作.所以,如果你试图通过一个小部件来控制它,我想很难保持亮点.一旦后台服务完成,相机对象就会自动释放,因此灯会再次关闭.我的问题仍然存在,特别是为什么相机不能在一开始就打开.

android android-camera flashlight

53
推荐指数
4
解决办法
8万
查看次数

如何修复Android模拟器中的"无法连接到相机服务"异常

当我在模拟器中运行我的Android应用程序时,我无法连接到相机服务异常.我已经阅读了各种现有的帖子,但没有人修复过这个问题.很明显,Camera.open()调用失败了.我最终想让网络摄像头进入模拟器,正如许多SO帖子所讨论的那样,但现在只是希望应用程序在没有轰炸的情况下运行.我不关心是否有任何摄像机视频显示,因为除了我需要测试的相机之外还有其他功能,并且主要测试我的设备上的摄像头.

我的清单似乎没问题.其中包含以下几行:

<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-permission android:name="android.permission.CAMERA"></uses-permission>
Run Code Online (Sandbox Code Playgroud)

在我的AVD管理器中,我将前后摄像头设置为"仿真",SD卡值设置为64.这些似乎是推荐值.完整的堆栈跟踪现在在下面.解决方案必须是直截了当的,但是什么?

10-09 08:14:32.375    2628-2628/com.allinlearning.AILAndroidScanner E/AndroidRuntime? FATAL EXCEPTION: main
Process: com.allinlearning.AILAndroidScanner, PID: 2628
java.lang.RuntimeException: Fail to connect to camera service
        at android.hardware.Camera.native_setup(Native Method)
        at android.hardware.Camera.<init>(Camera.java:350)
        at android.hardware.Camera.open(Camera.java:309)
        at com.allinlearning.AILAndroidScanner.AsynCamPreview.surfaceCreated(AsynCamPreview.java:104)
        at android.view.SurfaceView.updateWindow(SurfaceView.java:572)
        at android.view.SurfaceView.access$000(SurfaceView.java:86)
        at android.view.SurfaceView$3.onPreDraw(SurfaceView.java:175)
        at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:847)
        at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1871)
        at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1000)
        at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5670)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
        at android.view.Choreographer.doCallbacks(Choreographer.java:574)
        at android.view.Choreographer.doFrame(Choreographer.java:544)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
        at android.os.Handler.handleCallback(Handler.java:733)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:136)
        at android.app.ActivityThread.main(ActivityThread.java:5017)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
        at dalvik.system.NativeStart.main(Native Method) …
Run Code Online (Sandbox Code Playgroud)

camera android emulation android-emulator intellij-13

31
推荐指数
5
解决办法
8万
查看次数

android.permission.FLASHLIGHT有什么用?

我正在使用Camera 2 API开发一个手电筒应用程序.一切都很好.

在开发应用程序时,我遇到了很多教程甚至是堆栈溢出的帖子,其中人们使用了"android.permission.FLASHLIGHT"权限.

我试图在官方文档中搜索"android.permission.FLASHLIGHT"(在developer.android.com中),但找不到任何内容.

我只知道什么是许可,是否需要打开火炬模式.如果是,为什么没有官方文档,为什么我的应用程序(目标API> = 21)在没有此权限的情况下工作?

注意:我在Android 5,6,7,8中测试了我的应用程序,它运行正常,除了诺基亚6和小米redimi note.

android android-camera flashlight

4
推荐指数
1
解决办法
4169
查看次数

android:运行时请求权限

我想在我的应用程序中提供我需要权限的功能INTERNET.

但是,并非所有用户都希望使用此功能,因为这是一个非常强大的权限,我不想强​​迫每个人在他们想要使用它时将其提供给应用程序,只有当他们想要使用此功能时.

所以我必须在运行时请求该许可.sdk应用程序的最小值为15,我不想将其设置得更高.

requestPermissions(String[],int)我可以在我的调用中使用的方法Activity仅适用于API 23,但我可以调用ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.INTERNET},0);,但它不会显示对话框.

是的,我已检查是否已授予权限:

if(ContextCompat.checkSelfPermission(this,Manifest.permission.INTERNET)!= 
PackageManager.PERMISSION_GRANTED)
    ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.INTERNET},0);
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

permissions android

1
推荐指数
1
解决办法
2736
查看次数