跳转到主要内容

平台无关的针对特定平台API的包装器

项目描述

Plyer

Plyer是一个平台无关的API,用于在Python中访问常见于各种平台(尤其是移动平台)的功能。

coverage Backers on Open Collective Sponsors on Open Collective Continuous Integration with Ubuntu Continuous Integration with OSX Continuous Integration with Windows Deploy to PyPI

plyer是如何工作的?

玩家试图不重复造轮子,将调用外部库以当前平台最简单的方式实现API。

  • 在Android(python-for-android)上,使用pyjnius。
  • 在iOS(kivy-ios)上,使用pyobjus。
  • 在Windows/mac/Linux上,将使用常见的库和程序。

支持的API

平台 Android iOS Windows OS X Linux
加速度计
音频录制
气压计
电池
蓝牙
亮度
电话
摄像头(拍照)
指南针
CPU数量
设备名称
电子邮件(打开邮件客户端)
闪光灯
GPS
重力
陀螺仪
湿度
红外遥控器
密钥存储
光线
本地文件选择器
通知
方向
接近度
屏幕截图
短信(发送消息)
空间方向
语音转文本
存储路径
温度
文本转语音
唯一ID
震动器
Wi-Fi

安装

在桌面使用: pip install plyer 在python-for-android/kivy-ios上使用:如果需要,将plyer添加到您的需求中。

支持

如果您需要帮助,可以在我们的邮件列表上寻求帮助

Discord频道

贡献

我们热爱pull请求和讨论新想法。查看我们的贡献指南,并自由地改进Plyer。

以下邮件列表和IRC频道仅用于讨论开发Kivy框架及其相关项目

IRC频道

  • 服务器: irc.freenode.net
  • 端口: 6667, 6697(仅SSL)
  • 频道: #kivy-dev

许可证

Plyer根据MIT许可协议发布。请参阅LICENSE文件。

贡献者

该项目得益于所有贡献者。 [贡献].

支持者

感谢所有支持者!🙏 [成为支持者]

赞助商

通过成为赞助商来支持此项目。您的标志将在此处显示,并带有链接到您的网站。[成为赞助商]

变更日志

2.1.0 (2022-11-12)

完整变更日志

实现增强

  • 使用xdg-desktop-portal在Flatpak中实现通知 #680 (JakobDev)

关闭的问题

  • 尝试播放录制音频剪辑时抛出异常 #713
  • iOS:文件选择器 - 无法选择多个文件 #707
  • 语音转文本在API 30或更高版本上不工作 #693
  • Traceback(最后调用):文件“jnius/jnius_proxy.pxi”,行50,在jnius.jnius.PythonJavaClass.invoke中
  • 在Windows上通知但未归档通知 #684
  • 通知图标为base64而不是路径 #679
  • 玩家上一次发布版本是在大约2年前,未解决的PR数量荒谬,上次有意义的提交是在几个月前 #674
  • 选择所有文档类型的iOS文件选择器(UIDocumentPickerViewController) #673
  • Linux上发送通知时Python dbus错误 #658
  • 这个项目已经废弃了吗? #650
  • Android上的通知不工作 [ Drawable.icon ] #647
  • Android上音频不工作 #644
  • 在新的克隆中单元测试失败 #637
  • 提议一个PR来修复几个小错误 #622
  • 从setup.py中删除python2的提及 #608
  • Android 10上振动器抛出java.lang.SecurityException #606
  • 如何在JS中更改提示输入的大小写? #603
  • 这个仓库是否在维护? #592
  • Plyer通知在Android上不工作 #591
  • 功能请求:为Android Gallery(图片)添加Intent #588
  • plyer.filechooser.save_file在macOS X Catalina上不工作 #578
  • macOS通知NSUserNotificationCenter已弃用 + 缺少Info.plist #449

合并的pull请求

  • action-gh-release现在使用github.token #724 (misl6)
  • 将版本提升到2.1.0以发布 #723 (misl6)
  • 将action-gh-release提升到更高版本 #721 (misl6)
  • 更新支持的Python版本 #720 (misl6)
  • 修复了一些E275. + 其他PEP8小修复 #711 (misl6)
  • 记录Linux对方向的支持 #709 (rshah713)
  • 记录湿度支持的平台 #704 (rshah713)
  • 关键字应只持有许可证的名称 #701 (rshah713)
  • 记录原生文件选择器支持的平台 #700 (rshah713)
  • 修复Keystore注释以指向正确的类 #697 (rshah713)
  • 为气压添加缺少的平台 #695 (rshah713)
  • 在音频中添加缺少的平台 #694 (rshah713)
  • 修复了通知的失败测试 #692 (misl6)
  • 修复了样式检查 #691 (misl6)
  • 为处理器清理文档 #689 (rshah713)
  • 为Keystore创建清晰的文档 #688 (rshah713)
  • 在iOS原生文件选择器行中添加了勾选框 #685Neizvestnyj
  • :zap: 修复PEP8违规问题 #678Zen-CODE
  • :hammer: 修复CICD的PEP 8失败问题 #677Zen-CODE
  • 修复readme文件中的某些错误 #676AdamMusa
  • Android 11+ 兼容性:文档文件夹 #672moonpyx
  • 使用sys.getandroidapilevel进行更稳健的Android检测 #670rdb
  • 在Android上获取应用图标以用于通知的更稳健方式 #669rdb
  • 添加了在不选择内容的情况下跟踪文件管理器关闭的能力 #667Neizvestnyj
  • 修复了当用户取消文件选择器时,on_selection 未分发的问题 #666Neizvestnyj
  • 更大的缓冲区,允许进行大量选择 #655akshayaurora
  • 修复:修复KDE文件选择器的保存对话框 #652psyrykh
  • 在notification.py中,将R$drawable更改为R$mipmap以适应Android平台 #648masterjoseph914
  • linux/storagepath:修复了大量问题 #646rski
  • 更改PythonActivity Java类 #642Neizvestnyj
  • 在Linux上启用瞬态通知 #639olumidesan
  • 为向后兼容性更新了device-name实现 #634ljnath
  • 在readme.md文件中添加了贡献者信息 #633ljnath
  • 修复PEP8错误 #632ljnath
  • 移除了python2.6|7的引用,并添加了python 3.6|7|8的引用 #631ljnath
  • 支持在Linux和Windows上获取Android设备名称或主机名 #630ljnath
  • #611 在Android文件选择器中添加过滤器 #624akshayaurora
  • 文档:修复了一些简单的拼写错误 #623akshayaurora
  • 添加对Trinity桌面环境的检查 #620akshayaurora
  • FileChooser:MacOS:使用objectAtIndex_获取多个项 #618akshayaurora
  • 在README.md中添加安装部分 #563tshirtman

2.0.0 (2020-11-09)

完整变更日志

关闭的问题

  • Macox通知 - AttributeError: 'NoneType'对象没有'setDelegate_'属性 #586
  • 无法使用Plyer显示通知 #582
  • 无法设置应用方向 #579
  • plyer允许您打开另一个应用吗? #577
  • 在Android上调用notification.notify()时引发"没有可用的实现!"错误 #575
  • 语音合成功能无法正常工作 #572
  • Android 平台的蓝牙问题 #571
  • 使用 tts 时出现 NotImplementedError 异常 #567
  • MacOSX 文件选择器中过滤器变量可能未初始化 #566
  • Plyer 相机无法将图片保存到 iOS 手机 #561
  • 如何开启 GPS? #556
  • 如何在 kivy 中禁用模拟位置(虚假 GPS) #555
  • v 1.4.3 版本的发布说明? #550
  • 在 WINDOWS 中,电池的状态 isCharging 总是显示为 false #541
  • Mac 上的文件选择器:使用路径会导致 Python 崩溃 #524
  • Android 文件选择器无法工作 #512

合并的pull请求

1.4.3 (2020-03-27)

完整变更日志

关闭的问题

  • IOS - GPS: 'IosGPS' 对象没有属性 '_location_manager' #538
  • Android 文件选择器在按下返回按钮时崩溃 #534
  • Android 上的通知无法正常工作 #533
  • Android 上的文件选择器“选择”事件触发多次。 #530
  • KIVY 无法访问 Android 摄像头.. #521
  • Linux(Gnome)上没有通知图标 #514
  • Android 上的振动器无法正常工作 #509
  • 通知.notify 导致 Android Pie 设备崩溃 #504
  • API 26 中的振动器修订 #501

合并的pull请求

  • 修复 examples/gps/main.py 中的 linter 警告 #545ghost
  • 切换到 GitHub actions #544ghost
  • 修复 Android 通知(SDK_INT >= 26)中的崩溃 #543ghost
  • 添加本机 iOS 文件浏览器 #542Zen-CODE
  • 防止在取消文件选择器时崩溃 #536Zen-CODE
  • 使 win 文件选择器使用现代 Windows 浏览器并修复一些小问题。 #535matham
  • 防止在每次调用时重新绑定回调 #532Zen-CODE
  • 将权限请求添加到plyer GPS示例中 #529Zen-CODE
  • 处理LinuxFileChooser后端的缺失 #526Cheaterman
  • 修复在Android设备上不工作的振动器。 #523ghost
  • 为i...添加支持gps facade的on_status方法的逻辑 #519Dirk-Sandberg
  • 修复默认audio file_path分配错误,Py3中对file_path的更改 #518Nephyx
  • 添加Windows应用程序存储路径 #517magnusvmt
  • 修复支持的API列表中的拼写错误 #516holdbar
  • 修复tts.speak()在Android上崩溃的问题 #511Chao-Jen
  • 解决plyer问题#240。 #502Dirk-Sandberg
  • 更新README.md以添加opencollective #499tito
  • 提升至1.4.0以发布 #496KeyWeeUsr

1.4.2 (2019-09-05)

完整变更日志

1.4.1 (2019-09-05)

完整变更日志

关闭的问题

  • 我将致力于Linux音频 #497
  • 通知和服务 #494
  • Windows通知 - NotImplementedError:未找到可用的实现! #485
  • macOS通知NSUserNotificationCenter已弃用 + 缺少Info.plist #449

1.4.0 (2018-12-31)

完整变更日志

实现增强

  • Windows麦克风支持 #179

关闭的问题

  • jnius.jnius.JavaException:找不到类'android/content/INTENT' #479
  • macOS storagepath在get_home_dir()中使用非标准路径 #450
  • 示例应用程序在实际设备上崩溃 #338
  • 功能请求:Linux(计算机)上的加速度计 #9
  • 通过rockymeza/wifi的Linux wifi实现已损坏 #487
  • 硬编码的'wlan0'在所有设备上都不工作 #477
  • GNU/Linux wifi disconnect()在Ubuntu 15.04+上不工作 #452
  • Plyer Email #420
  • 通知在Android上不起作用 #402
  • plyer.accelerometer与Kivy启动器不兼容 #401
  • 在1.3.0之后发布新的PyPI版本 #400
  • plyer.notify.notification在Android中不显示ticker #378
  • plyer.uniqueid.id在Android上与sdl2一起导致崩溃 #245
  • audio:JVM异常发生:setAudioSource失败。 #210
  • AndroidNotification中的编码有问题 #175

合并的pull请求

  • 使用nmcli为Linux实现WiFi #495KeyWeeUsr
  • 增强Android通知,包括toast和大图标 #493KeyWeeUsr
  • 修复了Oreo及更高版本上Android通知缺失通道的问题 #492KeyWeeUsr
  • 添加Android原生文件选择器和外部SD卡路径到StoragePath #491KeyWeeUsr
  • 修复了Travis上的OSX构建问题 #490KeyWeeUsr
  • 为Windows添加音频录制和播放功能 #489KeyWeeUsr
  • 在Linux WiFi中添加对接口的支持 #488KeyWeeUsr
  • macOS测试 - 音频、电池、蓝牙、存储路径 #482Nephyx
  • 将'Speech'更改为'STT' #484KeyWeeUsr
  • 新的扩展CPU详细信息实现 #483KeyWeeUsr
  • 修复了Linux平台上的uniqueid问题 #481KeyWeeUsr
  • 修复了CI作业报告错误覆盖率(未导入的模块被忽略)的问题 #480KeyWeeUsr
  • thegrymek: Android语音识别 #471KeyWeeUsr

1.3.2 (2018-11-16)

完整变更日志

实现增强

  • 功能请求:支持Termux #360
  • 存储路径支持 #152
  • Windows 8上通知中的Unicode损坏 #17
  • 功能请求:向Windows通知添加可调整的提示文本 #14

关闭的问题

  • plyer通知在Android上引发NotImplementedError #467
  • 在Python 3中运行示例时出现TypeError #392
  • 当我使用buildozer和python3crystax构建apk时它不工作? #380
  • Windows文件选择器崩溃 #375
  • 使用相机使应用崩溃 #369
  • 在从加速度计函数调用plyer音频函数后,应用崩溃。 #361
  • uniqueid.id在android和windows7 32位python2.7下失败 #277
  • Windows文件选择器返回奇怪的字符串 #177
  • OSX的电子邮件支持 #32
  • iOS的GPS支持 #22
  • iOS的相机支持 #21
  • Camera facade的示例应用 #16

合并的pull请求

1.3.1 (2018-10-14)

完整变更日志

实现增强

关闭的问题

  • plyer.wifi.is_enabled()在运行python3时始终返回false #436
  • kivy-ios构建plyer失败 #417
  • Python 3 TabError #398
  • 是否有使用前置摄像头而不是后置摄像头的方法 #391
  • storagepath.py _get_application_dir: NotImplementedError #389
  • plyer应用在Android上崩溃 #387
  • 无法通过git安装plyer #385
  • 语音转文本 #382
  • text2speech在Linux平台上无法工作 #372
  • 在audio.py示例中更改file_path不起作用 #356
  • 如何在plyer中更改audio的file_path? #355
  • plyer中的加速度计 #354
  • iOS陀螺仪崩溃 #352
  • 需要密钥库来存储用户凭据 #350
  • plyer示例应用在Android手机上总是崩溃,显示“很遗憾,'应用名称'已停止工作。” #349
  • Windows上的通知不工作 #333
  • Linux上的加速度计不工作 #327
  • 1.3.0破坏了Windows上的通知 #318
  • 没有编码和°C导致SyntaxError #312
  • 输出返回值上GPS双重输出 #302
  • 无法在Windows中导入wifi模块 #272

合并的pull请求

1.3.0 (2017-03-23)

完整变更日志

实现增强

  • 特性请求:闹钟 #8

关闭的问题

  • Notification.notify导致Android应用崩溃 #296
  • 启动时GPS在Android上崩溃 #288
  • 发送短信功能不工作 #261
  • gps.configure()导致异常 #257
  • v1.2.4存档通过github不可用 #234
  • Linux下wifi.py的SyntaxError #230
  • 请发布新的PyPi版本,以修复静态jfieldID对java.lang.Class<org.renpy.android.PythonActivity>无效的问题 #229
  • 拖放:起源于Kivy,在某个外部应用中放下 #228
  • plyer的最新更改后iOS上的GPS问题 #224
  • battery.status isCharging始终显示为false #221
  • GPS示例只更新位置一次 #217
  • uniqueid.id在Windows上引发异常 #212
  • 冗余的libs文件夹 #209
  • Android上Kivy Launcher 1.9.0的加速度计不工作 #206
  • Android上的相机不返回到应用 #200
  • Android罗盘建议 #195
  • 更多示例代码到文档 #166
  • Linux上的邮件API引发错误NameError: name 'Email' is not defined #131
  • 本地GUI小部件 #124
  • android: 使用GPS应用无法从暂停状态恢复 #112
  • 请升级pypi! #94
  • UniqueID使用OpenID #83
  • 在正确的地方显示通知 #78
  • Python3 All The Plyer! #12

合并的pull请求

v1.2.4 (2015-06-01)

完整变更日志

实现增强

  • 更新平台检查代码 #109

关闭的问题

  • webhook 测试 #142
  • 从 Kivy 仓库同步样式检查更新 #141
  • Android 上的 GPS 不工作(一个奇怪的错误) #136
  • 为 Android 和 iOS 创建 toast 通知界面 #126
  • linux 上的 uniqueid.id 为空 #114
  • 为 iOS 添加陀螺仪支持 #111
  • AndroidUniqueID 不使用 Android ID #107
  • OverflowError: Python int 转换为 C long 时过大 [android lollipop] #103
  • 功能请求:能够打开浏览器到特定页面 #98
  • AndroidGPS列出了GPS提供者但使用硬编码的"gps" #54
  • 支持Android < 4.0的电子邮件 #42

合并的pull请求

1.2.3 (2015-01-27)

完整变更日志

1.2.2 (2015-01-27)

完整变更日志

关闭的问题

  • 没有找到可用的实现!系统中有可用的实现。 #108
  • 陀螺仪示例 #101
  • 通知在android中不起作用 #93
  • plyer.notification.notfy()在Linux下Python 3.3中引发NotImplementedError,但在Python 2.7中不会 #58

合并的pull请求

  • Linux平台检查与Python 3.3+兼容(修复#58) #102helenst

1.2.1 (2014-08-19)

完整变更日志

实现增强

  • 特性请求:与编解码器无关的音效播放器 #2

关闭的问题

  • 电池状态连接实际上是isCharging #84
  • Windows的电子邮件支持 #36
  • OSX的加速度计支持 #29
  • Linux的电子邮件支持 #28
  • iOS的电子邮件支持 #25
  • iOS的TextToSpeech支持 #24

合并的pull请求

1.2.0 (2014-06-24)

实现增强

  • 特性请求:向Windows通知添加可调整的超时选项 #13
  • 将notify更改为使用ctypes而不是win32gui,以便我们可以使用Unicode。 #18matham
  • Windows通知的用户指定图标支持 #11brousch
  • 添加振动器界面和android实现 #6inclement

关闭的问题

  • GPS示例崩溃 #40
  • TextToSpeech示例应用程序 #20
  • 加速度计示例应用程序 #19

合并的pull请求

* 此更改日志由github_changelog_generator自动生成

项目详情


下载文件

下载适合您平台文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

plyer-2.1.0.tar.gz (121.4 kB 查看哈希值)

上传时间

构建分布

plyer-2.1.0-py2.py3-none-any.whl (142.3 kB 查看哈希值)

上传时间 Python 2 Python 3

由 ... 支持的