我一直在尝试创建一个简单的Kivy应用程序,打开和关闭手电筒。我一直试图解决这个问题有一段时间没有用。互联网上没有太多关于这个修复的信息。
我已经决定采取的代码片段。(其余的只是图形用户界面设计,它的工作正常)。
import json
from kivy.app import App
from kivy.core.window import Window # For the Background colour
from kivy.lang import Builder
from kivy.properties import ObjectProperty
from kivy.uix.screenmanager import ScreenManager, Screen
from datetime import datetime
from plyer import flash
class LockMain(Screen):
def light(self): # will turn on the flashlight
flash.on()
所以当我在手机上安装这个应用程序时,它会打开一个简单的gui屏幕。当我按下一个按钮时,light()函数应该会运行。然而,它只是在我的android设备上崩溃了。
我做了一些研究,认为这是因为我没有包括权限,所以我添加了它。
import json
from kivy.app import App
from kivy.core.window import Window # For the Background colour
from kivy.lang import Builder
from kivy.properties import ObjectProperty
from kivy.uix.screenmanager import ScreenManager, Screen
from datetime import datetime
from plyer import flash
from kivy.utils import platform
if platform == "android":
from android.permissions import request_permissions, Permission
request_permissions([Permission.CAMERA,
Permission.FLASHLIGHT])
class LockMain(Screen):
Window.clearcolor = (1, 1, 1, 1) # Sets the background colour (Canvas) to white
def light(self): # will turn on the flashlight
flash.on()
然而,当我这样做时,应用程序根本打不开。有没有解决办法?我使用的是android 13。
我看了一下logcat,发现了这些消息
2023-02-28 12:46:14.493 1393-8154 ServiceManager cameraserver W Permission failure: android.permission.CAMERA from uid=10572 pid=30177
2023-02-28 12:46:14.493 1393-8154 CameraService cameraserver E Permission Denial: can't use the camera pid=30177, uid=10572
2023-02-28 12:46:14.494 30177-30219 CameraBase org.test.myapp W An error occurred while connecting to camera 0: Status(-8, EX_SERVICE_SPECIFIC): '1: validateClientPermissionsLocked:1545: Caller "org.test.myapp" (PID 10572, UID 30177) cannot open camera "0" without camera permission'
然后导致应用程序崩溃,如下面的logcat所示
2023-02-28 12:50:39.303 31663-31727 python org.test.myapp I File "jnius/jnius_utils.pxi", line 91, in jnius.jnius.check_exception
2023-02-28 12:50:39.303 31663-31727 python org.test.myapp I jnius.jnius.JavaException: JVM exception occurred: Fail to connect to camera service java.lang.RuntimeException
2023-02-28 12:50:39.303 31663-31727 python org.test.myapp I Python for android ended.
看着它,似乎有某种权限错误.我如何使用kivy允许Android相机权限?我尝试使用android.permissions但它不起作用.
1条答案
按热度按时间wwodge7n1#
我有同样的问题与我的应用程序的QR扫描.它的工作原理,当我手动给予应用程序的权限相机使用PermissionManager在设置.然而,我还没有弄清楚如何使应用程序要求自己的权限.