You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python-for-Android/Pyjnius和Kivy时,蓝牙权限校验失效但WiFi权限校验正常的问题求助

使用Python-for-Android/Pyjnius和Kivy时,蓝牙权限校验失效但WiFi权限校验正常的问题求助

我在使用Python结合Python-for-Android/Pyjnius和Kivy开发时,遇到了按钮点击触发权限校验的问题。

先说说正常工作的WiFi权限校验部分:

from android.permissions import check_permission
# Checks permissions returns True if app has permission
if check_permission('android.permission.ACCESS_FINE_LOCATION'):
   # [...] wifi scan code

这段代码运行完全符合预期:应用安装时会请求精确定位权限,我点击允许后,打开应用就能正常扫描网络;一旦关闭权限,RecycleView就会显示权限被拒绝的提示信息。

但蓝牙权限的校验情况就完全不一样了:

from android.permissions import check_permission, Permission
# Check permission returns True if app has all permissions
permissions = [Permission.BLUETOOTH_SCAN, Permission.BLUETOOTH_CONNECT, Permission.ACCESS_FINE_LOCATION]
granted = True
for permission in permissions:
    granted = granted and check_permission(permission)

if granted:
   # [...] bluetooth code scan

如果不添加权限校验逻辑,蓝牙扫描功能运行正常;但加上这段校验后,就会提示权限被拒绝——尽管我们已经在单独的request_permissions.py脚本中配置了应用启动时请求这些权限,而且buildozer.spec文件里也添加了对应的权限项。

需要说明的是,WiFi和蓝牙的扫描功能都被放在了独立的Thread中,但为什么WiFi的权限校验正常,蓝牙却不行呢?

另外,我的测试设备是三星S9(Android 10),首次启动应用时,系统会弹出ACCESS_FINE_LOCATION权限的请求,但从来不会请求蓝牙权限,不过此时蓝牙扫描功能是可以正常工作的。

有没有人知道这是怎么回事?

备注:内容来源于stack exchange,提问作者kannic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 13:13:04