Giter Site home page Giter Site logo

kivy / plyer Goto Github PK

View Code? Open in Web Editor NEW
1.5K 1.5K 415.0 1.39 MB

Plyer is a platform-independent Python wrapper for platform-dependent APIs

Home Page: https://plyer.readthedocs.io

License: MIT License

Makefile 0.17% Python 94.27% HTML 3.87% Shell 1.34% Batchfile 0.24% PowerShell 0.10%
android api-wrapper ios linux macos python windows

plyer's Introduction

Kivy

Kivy is an open-source Python framework for developing GUI apps that work cross-platform, including desktop, mobile and embedded platforms.

The aim is to allow for quick and easy interaction design and rapid prototyping whilst making your code reusable and deployable: Innovative user interfaces made easy.

Kivy is written in Python and Cython and is built on OpenGL ES 2.0. It supports various input devices and has an extensive (and extensible) widget library. With the same codebase, you can target Windows, macOS, Linux (including Raspberry Pi OS), Android, and iOS. All Kivy widgets are built with multitouch support.

Kivy is MIT licensed, actively developed by a great community and is supported by many projects managed by the Kivy Organization.

Backers on Open Collective Sponsors on Open Collective Contributor Covenant GitHub contributors

PyPI - Version PyPI - Python Version

Windows Unittests Status Ubuntu Unittests Status OSX Unittests Status Coverage Status

Windows wheels Status Manylinux wheels Status Raspberry Pi wheels Status OSX wheels Status

Installation, Documentation and Examples

Extensive installation instructions as well as tutorials and general documentation, including an API reference, can be found at https://www.kivy.org/docs. A PDF version is also available.

Kivy ships with many examples which can be found in the examples folder.

Support

Are you having trouble using the Kivy framework, or any of its related projects? Is there an error you don’t understand? Are you trying to figure out how to use it? We have volunteers who can help!

The best channels to contact us for support are listed in the latest Contact Us document.

Contributing

We love pull requests and discussing novel ideas. Check out our latest contribution guide and feel free to improve Kivy.

It gives details of the best places online to discuss the development with the core developers and other enthusiasts.

Sibling projects

The Kivy team manager a number of additional projects that support the Kivy eco-system.

  • Buildozer: a development tool for turning Python applications into binary packages ready for installation on any of a number of platforms, including mobile devices.
  • Plyer: a platform-independent Python API for accessing hardware features of various platforms (Android, iOS, macOS, Linux and Windows).
  • PyJNIus: a Python library for accessing Java classes using the Java Native Interface (JNI).
  • Pyobjus: Python module for accessing Objective-C classes as Python classes using Objective-C runtime reflection.
  • Python for Android: a development tool that packages Python apps into binaries that can run on Android devices.
  • Kivy iOS: a toolchain to compile the necessary libraries for iOS to run Kivy applications, and manage the creation of Xcode projects.
  • Audiostream: library for direct access to the microphone and speaker.
  • KivEnt: entity-based game engine for Kivy.
  • Oscpy: a Python implementation of Open Sound Control (OSC) network protocol.
  • Garden: widgets and libraries created and maintained by users.

Licenses

  • Kivy is released under the terms of the MIT License. Please refer to the LICENSE file.
  • The provided fonts Roboto and Roboto Mono are licensed and distributed under the terms of the Apache License, Version 2.0. The DejaVuSans (used for the virtual keyboard) license can be viewed here.
  • The current UI design has been adapted from Moblintouch theme's SVGs and is licensed under the terms of the LGPLv2.1.

Code of Conduct

In the interest of fostering an open and welcoming community, we as contributors and maintainers need to ensure participation in our project and our sister projects is a harassment-free and positive experience for everyone. It is vital that all interaction is conducted in a manner conveying respect, open-mindedness and gratitude.

Please consult the latest Code of Conduct.

Contributors

This project exists thanks to all the people who contribute. [Become a contributor].

Backers

Thank you to all of our backers! 🙏 [Become a backer]

Sponsors

Special thanks to all of our sponsors, past and present. Support this project by [becoming a sponsor].

Here are our top current sponsors. Please click through to see their websites, and support them as they support us.

plyer's People

Contributors

account-login avatar akshayaurora avatar andremiras avatar bhaveshan avatar brousch avatar dessant avatar dexerbr avatar dirk-sandberg avatar guhan-sensam avatar inclement avatar keyweeusr avatar kiok46 avatar kived avatar kovak avatar laltin avatar ljnath avatar matham avatar mihaineacsu avatar misl6 avatar neizvestnyj avatar nephyx avatar rshah713 avatar salil-gtm avatar sumitmadhwani avatar susmit avatar thegrymek avatar tito avatar trivedigaurav avatar tshirtman avatar zen-code avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

plyer's Issues

Re-opening playsound facade

I had closed the playsound pr (#65) without merging giving a reason that the user was better off including the external libs themselves. For example, if the app developer is using Kivy as the main framework to build their apps, it already has libs to play sounds.

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/3243379-re-opening-playsound-facade?utm_campaign=plugin&utm_content=tracker%2F77151&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F77151&utm_medium=issues&utm_source=github).

Camera Support for Windows

Add support for the camera facade to Windows

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/4431056-camera-support-for-windows?utm_campaign=plugin&utm_content=tracker%2F77151&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F77151&utm_medium=issues&utm_source=github).

Example app for Camera facade

We need a camera example app

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/4122697-example-app-for-camera-facade?utm_campaign=plugin&utm_content=tracker%2F77151&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F77151&utm_medium=issues&utm_source=github).

Feature Request: codec-independent sound player

An interface to play a sound no matter what codecs are supported on a particular platform. The user will probably have to provide the sound in a few formats, but the user should not have to manually check codecs and platforms to play the sound.

Gyro example

Hi

Why plyer doesn't contain any gyro example?
I found tito's example for reading sensors data but it seems it doesnt used plyer and written from base.

OverflowError: Python int too large to convert to C long [android lollipop]

With android lollipop and the gps example, i get the following error when i try to start the gps service (from the gui) :

I/python ( 9571): Android kivy bootstrap done. name is main
I/python ( 9571): Run user program, change dir and execute main.py
I/python ( 9571): [INFO ] Kivy v1.8.0
I/python ( 9571): [INFO ] [Logger ] Record log in /data/data/org.test.gpsexample/files/.kivy/logs/kivy_14-12-22_2.txt
I/python ( 9571): [INFO ] [Factory ] 157 symbols loaded
I/python ( 9571): [DEBUG ] [Cache ] register <kv.lang> with limit=None, timeout=Nones
I/python ( 9571): [DEBUG ] [Cache ] register <kv.image> with limit=None, timeout=60s
I/python ( 9571): [DEBUG ] [Cache ] register <kv.atlas> with limit=None, timeout=Nones
I/python ( 9571): /data/data/org.test.gpsexample/files/lib/python2.7/site-packages/kivy/core/image/img_pygame.py:12: RuntimeWarning: import cdrom: No module named cdrom
I/python ( 9571): (ImportError: No module named cdrom)
I/python ( 9571): [INFO ] [Image ] Providers: img_tex, img_dds, img_pygame, img_gif (img_pil ignored)
I/python ( 9571): [DEBUG ] [Cache ] register <kv.texture> with limit=1000, timeout=60s
I/python ( 9571): [DEBUG ] [Cache ] register <kv.shader> with limit=1000, timeout=3600s
I/python ( 9571): [DEBUG ] [App ] Loading kv <./gpstest.kv>
I/python ( 9571): [DEBUG ] [App ] kv <./gpstest.kv> not found
I/python ( 9571): [DEBUG ] [Window ] Ignored <egl_rpi> (import error)
I/python ( 9571): [INFO ] [Window ] Provider: pygame(['window_egl_rpi'] ignored)
I/python ( 9571): [DEBUG ] [WinPygame ] Set window to fullscreen mode
I/libSDL ( 9571): SDL_SetVideoMode(): application requested mode 1080x1701
I/python ( 9571): [DEBUG ] [Window ] Display driver android
I/python ( 9571): [DEBUG ] [Window ] Actual window size: 1080x1701
I/python ( 9571): [INFO ] [GL ] OpenGL version <OpenGL ES 3.0 [email protected] AU@ (GIT@I68fa98814b)>
I/python ( 9571): [INFO ] [GL ] OpenGL vendor
I/python ( 9571): [INFO ] [GL ] OpenGL renderer <Adreno (TM) 330>
I/python ( 9571): [INFO ] [GL ] OpenGL parsed version: 3, 0
I/python ( 9571): [INFO ] [GL ] Texture max size <4096>
I/python ( 9571): [INFO ] [GL ] Texture max units <16>
I/python ( 9571): [DEBUG ] [Shader ] Fragment compiled successfully
I/python ( 9571): [DEBUG ] [Shader ] Vertex compiled successfully
I/python ( 9571): [DEBUG ] [ImagePygame ] Load </data/data/org.test.gpsexample/files/lib/python2.7/site-packages/kivy/data/glsl/default.png>
I/python ( 9571): [INFO ] [Support ] Android install hooks
I/python ( 9571): [INFO ] [Window ] virtual keyboard not allowed, single mode, not docked
I/python ( 9571): [INFO ] [Text ] Provider: pygame
I/python ( 9571): [INFO ] [OSC ] using for socket
I/python ( 9571): [DEBUG ] [Base ] Create provider from android
I/python ( 9571): [INFO ] [Base ] Start application main loop
I/python ( 9571): [INFO ] [Android ] found 17 joystick
I/python ( 9571): [INFO ] [Android ] create joystick <0>
I/python ( 9571): [INFO ] [Android ] discard joystick <0> cause no button
I/python ( 9571): [INFO ] [Android ] create joystick <1>
I/python ( 9571): [INFO ] [Android ] create joystick <2>
I/python ( 9571): [INFO ] [Android ] create joystick <3>
I/python ( 9571): [INFO ] [Android ] create joystick <4>
I/python ( 9571): [INFO ] [Android ] create joystick <5>
I/python ( 9571): [INFO ] [Android ] create joystick <6>
I/python ( 9571): [INFO ] [Android ] create joystick <7>
I/python ( 9571): [INFO ] [Android ] create joystick <8>
I/python ( 9571): [INFO ] [Android ] create joystick <9>
I/python ( 9571): [INFO ] [Android ] create joystick <10>
I/python ( 9571): [INFO ] [Android ] create joystick <11>
I/python ( 9571): [INFO ] [Android ] create joystick <12>
I/python ( 9571): [INFO ] [Android ] create joystick <13>
I/python ( 9571): [INFO ] [Android ] create joystick <14>
I/python ( 9571): [INFO ] [Android ] create joystick <15>
I/python ( 9571): [INFO ] [Android ] create joystick <16>
I/python ( 9571): [INFO ] [GL ] NPOT texture support is available
I/python ( 9571): [DEBUG ] [Atlas ] Load </data/data/org.test.gpsexample/files/lib/python2.7/site-packages/kivy/data/../data/images/defaulttheme.atlas>
I/python ( 9571): [DEBUG ] [Atlas ] Need to load 1 images
I/python ( 9571): [DEBUG ] [Atlas ] Load </data/data/org.test.gpsexample/files/lib/python2.7/site-packages/kivy/data/../data/images/defaulttheme-0.png>
I/python ( 9571): [DEBUG ] [ImagePygame ] Load </data/data/org.test.gpsexample/files/lib/python2.7/site-packages/kivy/data/../data/images/defaulttheme-0.png>
D/audio_hw_primary( 183): disable_audio_route: reset and update mixer path: low-latency-playback
D/audio_hw_primary( 183): disable_snd_device: snd_device(2: speaker)
I/python ( 9571): Traceback (most recent call last):
I/python ( 9571): File "jnius_proxy.pxi", line 143, in jnius.jnius.py_invoke0 (jnius/jnius.c:23653)
I/python ( 9571): File "jnius_conversion.pxi", line 368, in jnius.jnius.convert_python_to_jobject (jnius/jnius.c:8386)
I/python ( 9571): OverflowError: Python int too large to convert to C long
W/System.err( 9571): java.lang.NullPointerException: Expected to unbox a 'int' primitive type but was returned null
W/System.err( 9571): at $Proxy0.hashCode(Unknown Source)
W/System.err( 9571): at java.util.Collections.secondaryHash(Collections.java:3405)
W/System.err( 9571): at java.util.HashMap.get(HashMap.java:300)
W/System.err( 9571): at android.location.LocationManager.wrapListener(LocationManager.java:849)
W/System.err( 9571): at android.location.LocationManager.requestLocationUpdates(LocationManager.java:864)
W/System.err( 9571): at android.location.LocationManager.requestLocationUpdates(LocationManager.java:490)
W/System.err( 9571): at org.renpy.android.SDLSurfaceView.nativeInit(Native Method)
W/System.err( 9571): at org.renpy.android.SDLSurfaceView.run(SDLSurfaceView.java:726)
W/System.err( 9571): at java.lang.Thread.run(Thread.java:818)
I/python ( 9571): [INFO ] [Base ] Leaving application in progress...
I/python ( 9571): Traceback (most recent call last):
I/python ( 9571): File "/home/pla/Dev/gpstest/.buildozer/android/app/main.py", line 63, in
I/python ( 9571): File "/home/pla/Dev/gpstest/.buildozer/android/platform/python-for-android/build/python-install/lib/python2.7/site-packages/kivy/app.py", line 792, in run
I/python ( 9571): File "/home/pla/Dev/gpstest/.buildozer/android/platform/python-for-android/build/python-install/lib/python2.7/site-packages/kivy/base.py", line 481, in runTouchApp
I/python ( 9571): File "/home/pla/Dev/gpstest/.buildozer/android/platform/python-for-android/build/python-install/lib/python2.7/site-packages/kivy/core/window/window_pygame.py", line 381, in mainloop
I/python ( 9571): File "/home/pla/Dev/gpstest/.buildozer/android/platform/python-for-android/build/python-install/lib/python2.7/site-packages/kivy/core/window/window_pygame.py", line 287, in _mainloop
I/python ( 9571): File "/home/pla/Dev/gpstest/.buildozer/android/platform/python-for-android/build/python-install/lib/python2.7/site-packages/kivy/base.py", line 324, in idle
I/python ( 9571): File "/home/pla/Dev/gpstest/.buildozer/android/platform/python-for-android/build/python-install/lib/python2.7/site-packages/kivy/base.py", line 309, in dispatch_input
I/python ( 9571): File "/home/pla/Dev/gpstest/.buildozer/android/platform/python-for-android/build/python-install/lib/python2.7/site-packages/kivy/base.py", line 220, in post_dispatch_input
I/python ( 9571): File "_event.pyx", line 316, in kivy._event.EventDispatcher.dispatch (kivy/_event.c:4552)
I/python ( 9571): File "/home/pla/Dev/gpstest/.buildozer/android/platform/python-for-android/build/python-install/lib/python2.7/site-packages/kivy/core/window/init.py", line 648, in on_motion
I/python ( 9571): File "_event.pyx", line 316, in kivy._event.EventDispatcher.dispatch (kivy/_event.c:4552)
I/python ( 9571): File "/home/pla/Dev/gpstest/.buildozer/android/platform/python-for-android/build/python-install/lib/python2.7/site-packages/kivy/core/window/init.py", line 660, in on_touch_down
I/python ( 9571): File "_event.pyx", line 316, in kivy._event.EventDispatcher.dispatch (kivy/_event.c:4552)
I/python ( 9571): File "/home/pla/Dev/gpstest/.buildozer/android/platform/python-for-android/build/python-install/lib/python2.7/site-packages/kivy/uix/widget.py", line 284, in on_touch_down
I/python ( 9571): File "_event.pyx", line 316, in kivy._event.EventDispatcher.dispatch (kivy/_event.c:4552)
I/python ( 9571): File "/home/pla/Dev/gpstest/.buildozer/android/platform/python-for-android/build/python-install/lib/python2.7/site-packages/kivy/uix/widget.py", line 284, in on_touch_down
I/python ( 9571): File "_event.pyx", line 316, in kivy._event.EventDispatcher.dispatch (kivy/_event.c:4552)
I/python ( 9571): File "/home/pla/Dev/gpstest/.buildozer/android/platform/python-for-android/build/python-install/lib/python2.7/site-packages/kivy/uix/behaviors.py", line 92, in on_touch_down
I/python ( 9571): File "/home/pla/Dev/gpstest/.buildozer/android/platform/python-for-android/build/python-install/lib/python2.7/site-packages/kivy/uix/behaviors.py", line 191, in _do_press
I/python ( 9571): File "properties.pyx", line 345, in kivy.properties.Property.set (kivy/properties.c:3591)
I/python ( 9571): File "properties.pyx", line 377, in kivy.properties.Property.set (kivy/properties.c:4066)
I/python ( 9571): File "properties.pyx", line 431, in kivy.properties.Property.dispatch (kivy/properties.c:4659)
I/python ( 9571): File "/home/pla/Dev/gpstest/.buildozer/android/platform/python-for-android/build/python-install/lib/python2.7/site-packages/kivy/lang.py", line 1299, in custom_callback
I/python ( 9571): File "", line 18, in
I/python ( 9571): File "/home/pla/Dev/gpstest/.buildozer/android/platform/python-for-android/build/python-install/lib/python2.7/site-packages/plyer/facades.py", line 199, in start
I/python ( 9571): File "/home/pla/Dev/gpstest/.buildozer/android/platform/python-for-android/build/python-install/lib/python2.7/site-packages/plyer/platforms/android/gps.py", line 84, in _start
I/python ( 9571): File "jnius_export_class.pxi", line 830, in jnius.jnius.JavaMultipleMethod.call (jnius/jnius.c:21138)
I/python ( 9571): File "jnius_export_class.pxi", line 562, in jnius.jnius.JavaMethod.call (jnius/jnius.c:17919)
I/python ( 9571): File "jnius_export_class.pxi", line 656, in jnius.jnius.JavaMethod.call_method (jnius/jnius.c:19004)
I/python ( 9571): File "jnius_utils.pxi", line 43, in jnius.jnius.check_exception (jnius/jnius.c:3237)
I/python ( 9571): jnius.jnius.JavaException: JVM exception occured
I/python ( 9571): Python for android ended.
I/art ( 9571): System.exit called, status: 0

GPS Support for Linux

Add support for the GPS facade to Linux. Some options: GPs dongle support, location via network (like browsers).

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/4431060-gps-support-for-linux?utm_campaign=plugin&utm_content=tracker%2F77151&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F77151&utm_medium=issues&utm_source=github).

can i get contact list

can i get contact list

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/5873793-can-i-get-contact-list?utm_campaign=plugin&utm_content=tracker%2F77151&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F77151&utm_medium=issues&utm_source=github).

Camera Support for iOS

Add support for the camera facade to iOS

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/3772096-camera-support-for-ios?utm_campaign=plugin&utm_content=tracker%2F77151&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F77151&utm_medium=issues&utm_source=github).

AndroidUniqueID doesn't use Android ID

The implementation returns the IMEI and therefore only works on phones, not tablets. Android provides an Android ID via Secure Settings which works for all devices and does not require any extra permissions (the current implementation requires READ_PHONE_STATE).

Example:

PythonActivity = autoclass('org.renpy.android.PythonActivity')
Secure = autoclass('android.provider.Settings$Secure')
android_id = Secure.getString(PythonActivity.mActivity.getContentResolver(),
                              Secure.ANDROID_ID)

Notification Support for iOS

Add support for the notification facade to iOS

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/3010694-notification-support-for-ios?utm_campaign=plugin&utm_content=tracker%2F77151&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F77151&utm_medium=issues&utm_source=github).

Please upgrade pypi !

On Pypi, the latest plyer is 1.1.2 but this release doesn't include compass and many others.
Could you upgrade the pypi package to the latest release ?

Camera Support for Linux

Add support for the camera facade to Linux

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/4431061-camera-support-for-linux?utm_campaign=plugin&utm_content=tracker%2F77151&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F77151&utm_medium=issues&utm_source=github).

android: using gps app cannot resume from pause

if I use gps the app is stalled every times android go to sleep mode.
If I put gps.stop() in on_pause method the app is stalled too.

I/python (29483): [INFO ] [Android ] Must go into sleep mode, check the app
I/python (29483): >>>>>>>>> called on appication pause
I/python (29483): going to save status
I/python (29483): [INFO ] [Android ] App paused, now wait for resume.
I/WindowManager( 2038): Input event dispatching timed out sending to org.test.rmap/org.renpy.android.PythonActivity
E/ActivityManager( 2038): ANR in org.test.rmap:python (org.test.rmap/org.renpy.android.PythonActivity)
E/ActivityManager( 2038): 0.3% 26952/org.test.rmap:PythonService: 0.1% user + 0.2% kernel / faults: 54 minor

unicode broken in notifications on windows 8.

Opening a notifications on windows 8.1 works, but unicode characters ("éàùç" and their friends) are displayed improperly, probably using a bad encoding (i would suspect a latin-1 or similar encoding).

(that's running the provided example)

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/4431062-unicode-broken-in-notifications-on-windows-8?utm_campaign=plugin&utm_content=tracker%2F77151&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F77151&utm_medium=issues&utm_source=github).

Accelerometer Support for Windows

Add support for the accelerometer facade to Windows

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/4431057-accelerometer-support-for-windows?utm_campaign=plugin&utm_content=tracker%2F77151&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F77151&utm_medium=issues&utm_source=github).

Python3 All The Plyer!

Check Python3 compatibility for all parts of Plyer. The biggest hurdles will be a Python3 python-for-android, pyjnius, kivy-ios, and pyobjus.

NotImplementedError: No usable implementation found! whith usable implementations on the system.

platform in linux mint17.1 mate (ubuntu-based) with an almost fresh install.

import plyer
plyer.notification
plyer.notification.notify()

raises NotImplementedError: No usable implementation found! with this traceback.

----> 1 plyer.notification.notify()
/usr/local/lib/python3.4/dist-packages/plyer/facades.py in notify(self, title, message, app_name, app_icon, timeout)
     96         '''
     97         self._notify(title=title, message=message, app_icon=app_icon,
---> 98                      app_name=app_name, timeout=timeout)
     99 
    100     # private

/usr/local/lib/python3.4/dist-packages/plyer/facades.py in _notify(self, **kwargs)
    101 
    102     def _notify(self, **kwargs):
--> 103         raise NotImplementedError("No usable implementation found!")
    104 
    105 

trying to corner the malfunction and to determine whetther my setup is wrong, I tried this :

Python 3.4.0 (default, Apr 11 2014, 13:05:11) 
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import plyer
>>> plyer.utils.platform
'unknown'
>>> plyer.utils._determine_platform()
'unknown'
>>> plyer.utils._sys_platform
'linux'
>>> plyer.utils._sys_platform.startswith("linux")   # mimics test on utils.py L38
True

so according to utils.py, plyer.utils.platform should be 'linux' ... but apparently _determine_platform() does not return what seems straightforward.

it can be worked around for testing purposes with

from sys import platform
if platform == 'linux':
    plyer.utils.platform = 'linux'  # only for testing purposes !!! 

but for obvious reasons, this is does not look like a good idea.

Speech to Text

A possible solution for cross-platform (desktops) Speech to Text http://cmusphinx.sourceforge.net/

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/2977842-speech-to-text?utm_campaign=plugin&utm_content=tracker%2F77151&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F77151&utm_medium=issues&utm_source=github).

Battery status connected is actually isCharging

Battery should return status containing bool value isCharging instead of connected (bool). At this point we return connected: False if the battery is full. So it misrepresents the value in this case.

Feature request: ability to open browser to a particular page

It would be great to be able to open the default system's browser to a particular page (passed in as an argument).

In an answer to a stackoverflow question about adding hyperlinks to Kivy, someone said that this functionality would be added to plyer at some point in the future. Is it on the agenda officially? If not, this is a request that it be added.

The stack overflow: http://stackoverflow.com/questions/22385963/how-can-i-make-a-hyperlink-in-kivy

Thanks!

GPS Example Crashes on Android if No GPS Capabilities are Present

Need to add a check in the GPS example for Android devices which don't have GPS capabilities. There is a platform check, but no device check.

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/1834888-gps-example-crashes-on-android-if-no-gps-capabilities-are-present?utm_campaign=plugin&utm_content=tracker%2F77151&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F77151&utm_medium=issues&utm_source=github).

Notification is not working in android

Linux (ubuntu 14.04)
Android 4.0.4 (Samsung GALAXY Note)

$ python
Python 2.7.6 (default, Mar 22 2014, 22:59:56)
[GCC 4.8.2] on linux2

$ pip freeze
Kivy==1.8.0
Kivy-Garden==0.1.1
plyer==1.1.2
pyjnius==1.3.0
buildozer==0.15
Cython==0.20.2
PyOpenGL==3.0.2
pyOpenSSL==0.13
pygame==1.9.1release

  1. Download plyer / examples / notification /
  2. $ buildozer android debug deploy run
  3. move PlyerNotificationExample-1.0-debug.apk to android phone and install PlyerNotificationExample-1.0-debug.apk
  4. Touch 'Simple Notification', Plyer Notification Example (application) is shutdown*
  5. Touch 'Fancy Notification', Plyer Notification Example (application) is shutdown*

Feature request: Accelerometer on Linux (computers)

There's no way to detect if it is a joystick or an accelerometer other than reading the name, but AFAIK on Ubuntu accelerometers and some joysticks follow this glob:
/sys/devices/platform/*/position
The position file contains the value of the axes. I'm pretty sure though that there's a better way to read it than reading the position file. I think jstest-gtk is written in python.

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/4431065-feature-request-accelerometer-on-linux-computers?utm_campaign=plugin&utm_content=tracker%2F77151&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F77151&utm_medium=issues&utm_source=github).

AndroidGPS list GPS Provider but use hardcoded "gps"

List all Location Providers but only use gps:

        providers = self._location_manager.getProviders(False).toArray()
        for provider in providers:
            self._location_manager.requestLocationUpdates(
                "gps",
                1000, # minTime, in milliseconds
                1, # minDistance, in meters
                self._location_listener,

it should be

            self._location_manager.requestLocationUpdates(
                provider,

Missing Rotation Vector / Linear Acceleration / Gravity sensors

On my android (Sony Xperia Z), I have sensors that would be cool to have in plyer
The sensors are :

  • Rotation Vector
  • Linear Acceleration
  • Gravity

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/3682926-missing-rotation-vector-linear-acceleration-gravity-sensors?utm_campaign=plugin&utm_content=tracker%2F77151&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F77151&utm_medium=issues&utm_source=github).

plyer.notification.notfy() raises NotImplementedError under Python 3.3 in Linux but not Python 2.7

Tested with 1.1.2 under Linux.

from kivy.app import App
from plyer import notification

class LinuxApp(App):
    def build(self):
        notification.notify("Title", "Notification")

app = LinuxApp()
app.run()
 Traceback (most recent call last):
   File "/usr/lib/python3.3/site-packages/plyer/utils.py", line 66, in _ensure_obj
     mod = __import__(module, fromlist='.')
 ImportError: No module named 'plyer.platforms.unknown'
 Traceback (most recent call last):
   File "notify.py", line 9, in <module>
     app.run()
   File "/usr/lib64/python3.3/site-packages/kivy/app.py", line 766, in run
     root = self.build()
   File "notify.py", line 6, in build
     notification.notify("Title", "Notification")
   File "/usr/lib/python3.3/site-packages/plyer/facades.py", line 85, in notify
     self._notify(title=title, message=message)
   File "/usr/lib/python3.3/site-packages/plyer/facades.py", line 90, in _notify
     raise NotImplementedError()
 NotImplementedError

Camera Support for OSX

Add support for the camera facade to OSX

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/4431059-camera-support-for-osx?utm_campaign=plugin&utm_content=tracker%2F77151&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F77151&utm_medium=issues&utm_source=github).

Feature Request: Alarms

An API for setting an alarm and triggering an event sometime in the future.

Android: AlarmManager
Linux: cron
OSX: cron
Windows: Task Scheduler

GPS Support for OSX

Add support for the GPS facade to OSX.

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/4009724-gps-support-for-osx?utm_campaign=plugin&utm_content=tracker%2F77151&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F77151&utm_medium=issues&utm_source=github).

Automation and Screen Reader Support

I posted
On the main Kivy issue page
But I realized this is the place I should post.
There are quite a few libraries that create accessible widgets for Linux Windows and OS X:
WXPython
PyGUI
Easy GUI

What they do is use pywin32, pyatspi and I believe coco for IOS.
The native designation is what we are after. If an app can be run through automation scripts, then only labeling needs to be done to make it completely accessible.

Kivy seems to be very much based off of pointer access and on mobile platforms this is OK (Although being able to flick from object to object is optimal), but on Windows, Linux and Mac, the mouse is almost never used. In the current Kivy setup, I can't even click a button with the enter key. So along with native widget support, Kivy will need to add keyboard handling to their desktop apps.

The two libraries above that seem to be the best are WXPython and pyGUI.
WXPython is quite an active library, but it is quite a large library and is perhaps a little over-kill for what is needed here. It is, however, the most accessible of all the options above. (There are not that many bugs and it is much more stable).

pyGUI is a lot smaller and I have not really played too much with it, but the examples I ran were kind of buggy, but they worked to some extent. Elements like labels were not the nicest I have ever seen and the buttons were bouncing my screen reader around, but I think that is more the way the key events are being processed.

It is possible to build a wrapper around the system accessibility frameworks directly, but if pywin32 is already included to Kivy and the linux accessibility is in python, there is only OS X and the two mobile platforms to deal with.
I have no experience with IOS or Android, but here are their respective accessibility modules:

Here is the OS X accessibility API for apple
iOS accessibility API
Android

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/8429833-automation-and-screen-reader-support?utm_campaign=plugin&utm_content=tracker%2F77151&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F77151&utm_medium=issues&utm_source=github).

GPS example crashes

Trying to run the following code (from the docs):

from time import sleep
from plyer import gps

def print_locations(**kwargs):
    print 'lat: {lat}, lon: {lon}'.format(**kwargs)

gps.configure(on_location=print_locations)
gps.start()
sleep(5)
gps.stop()

However it crashes:

I/python  (29941): Initialize Python for Android
I/python  (29941): ['/data/data/org.test.gps/files/lib/python2.7/site-packages', '/data/data/org.test.gps/files/lib/site-python']
I/python  (29941): Android path ['/data/data/org.test.gps/files/lib/python27.zip', '/data/data/org.test.gps/files/lib/python2.7', '/data/data/org.test.gps/files/lib/python2.7/lib-dynload', '/data/data/org.test.gps/files/lib/python2.7/site-packages', '/data/data/org.test.gps/files']
I/python  (29941): Android kivy bootstrap done. __name__ is __main__
I/python  (29941): Run user program, change dir and execute main.py
I/python  (29941): Traceback (most recent call last):
I/python  (29941):   File "/home/lipi/git/repka2/android/main.py", line 7, in <module>
I/python  (29941):   File "/home/lipi/git/p4a/build/python-install/lib/python2.7/site-packages/plyer/facades.py", line 189, in configure
I/python  (29941):   File "/home/lipi/git/p4a/build/python-install/lib/python2.7/site-packages/plyer/platforms/android/gps.py", line 72, in _configure
I/python  (29941):   File "/home/lipi/git/p4a/build/python-install/lib/python2.7/site-packages/plyer/platforms/android/gps.py", line 20, in __init__
I/python  (29941):   File "jnius_proxy.pxi", line 31, in jnius.jnius.PythonJavaClass.__init__ (jnius/jnius.c:21301)
I/python  (29941):   File "jnius_proxy.pxi", line 182, in jnius.jnius.create_proxy_instance (jnius/jnius.c:23496)
I/python  (29941):   File "jnius_export_class.pxi", line 556, in jnius.jnius.JavaMethod.__call__ (jnius/jnius.c:17318)
I/python  (29941):   File "jnius_conversion.pxi", line 57, in jnius.jnius.populate_args (jnius/jnius.c:5405)
I/python  (29941):   File "jnius_utils.pxi", line 74, in jnius.jnius.check_assignable_from (jnius/jnius.c:3449)
I/python  (29941): jnius.jnius.JavaException: Invalid instance of 'org/jnius/NativeInvocationHandler' passed for a 'java/lang/reflect/InvocationHandler'
I/python  (29941): Python for android ended.

USSD command (new feature)

I propose the addition of the USSD feature.
For those who don't know what an USSD command is: it's a particular kind of network request where you type in a command (e.g. _123#, *123_45#, 123, etc...) and the network responds with some text (e.g. credit information). Sometimes the network keeps the session open waiting for the user to respond back: in that case you can either cancel or respond.
The facade should provide three methods: initiate (accepts a string with the command, returns network's response), respond (accepts a string with the response, returns network's response), cancel, and some way to see if a session is open or not.
See this for more details: http://www.freedesktop.org/software/ModemManager/api/latest/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd.html

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/3003940-ussd-command-new-feature?utm_campaign=plugin&utm_content=tracker%2F77151&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F77151&utm_medium=issues&utm_source=github).

GPS Support for iOS

Add support for the GPS facade to iOS

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/3944586-gps-support-for-ios?utm_campaign=plugin&utm_content=tracker%2F77151&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F77151&utm_medium=issues&utm_source=github).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.