问题描述
我正在尝试使用buildozer制作用于Android的GPS记录器。 我可以通过“ from jnius import autoclass”提供基本的后台服务。 但是,由于权限的原因,其后台文件不起作用。 (前台服务还可以) 您能否帮助我了解授予android后台服务权限的正确方法?
main.py(部分)
from kivy.utils import platform
SERVICE_NAME = u'{packagename}.Service{servicename}'.format(
packagename=u'org.kivy.test',servicename=u'Myservice')
if platform == 'android':
from jnius import autoclass
service = autoclass(SERVICE_NAME)
mActivity = autoclass(u'org.kivy.android.PythonActivity').mActivity
argument = ""
service.start(mActivity,argument)
service.py(背景)
if platform == 'android':
print("Service platform android")
from android.permissions import Permission,request_permissions
request_permissions([Permission.ACCESS_COARSE_LOCATION,Permission.ACCESS_FINE_LOCATION])
buildozer.spec
# (list) Application requirements
# comma separated e.g. requirements = sqlite3,kivy
requirements = python3,kivy==2.0.0rc1,requests,certifi,urllib3,chardet,idna,plyer,oscpy,autoclass
# (list) List of service to declare
#services = NAME:ENTRYPOINT_TO_PY,NAME2:ENTRYPOINT2_TO_PY
services = Myservice:service.py
# (list) Permissions
#android.permissions = INTERNET
android.permissions = INTERNET,ACCESS_COARSE_LOCATION,ACCESS_FINE_LOCATION
(others are default)
结果;
I/Myservice: Traceback (most recent call last):
File "/home/nori/maplog/.buildozer/android/app/service.py",line 34,in <module>
I/Myservice: File "/home/nori/maplog/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/test/android/permissions.py",line 570,in request_permissions
File "/home/nori/maplog/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/test/android/permissions.py",line 510,line 488,in register_callback
I/Myservice: File "jnius/jnius_export_class.pxi",line 755,in jnius.jnius.JavaMethod.__call__
File "jnius/jnius_export_class.pxi",line 699,in jnius.jnius.JavaMethod.ensure_method
jnius.jnius.JavaException: Unable to find a None method!
classname: None,deFinition: (Lorg/kivy/android/PythonActivity$PermissionsCallback;)V
I/python: Python for android ended.
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)