Outils pour utilisateurs

Outils du site


kivy_plyer

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
kivy_plyer [2020/01/02 18:54] – [Exemple] sergekivy_plyer [2020/12/01 17:43] (Version actuelle) – ↷ Liens modifiés en raison d'un déplacement. serge
Ligne 1: Ligne 1:
 ====== Kivy: plyer====== ====== Kivy: plyer======
- 
 <WRAP center round box 60% centeralign> <WRAP center round box 60% centeralign>
 **{{tagpage>kivy|Toutes les pages Kivy}}** **{{tagpage>kivy|Toutes les pages Kivy}}**
 **[[http://translate.google.com/translate?hl=&sl=auto&tl=en&u=https%3A%2F%2Fressources.labomedia.org%2Fkivy_plyer|English Version]]** **[[http://translate.google.com/translate?hl=&sl=auto&tl=en&u=https%3A%2F%2Fressources.labomedia.org%2Fkivy_plyer|English Version]]**
 +</WRAP>
 +<WRAP center round box 40% centeralign>
 +**[[les_pages_kivy_en_details|Les pages Kivy en détails]]**
 </WRAP> </WRAP>
  
 +**Plyer** fournit des façades pour accéder facilement à des fonctionnalités Android. C'est une alternative simple à **[[kivy_jnius|jnuis]]**
 =====Installation===== =====Installation=====
- 
   sudo pip3 install plyer   sudo pip3 install plyer
- 
- 
  
 =====Ressources===== =====Ressources=====
 +Très pauvres !
   * **[[https://kivy.org/doc/stable/guide/android.html#plyer|Plyer]]**   * **[[https://kivy.org/doc/stable/guide/android.html#plyer|Plyer]]**
   * **[[https://github.com/kivy/plyer|plyer sur github.com ]]** Le Readme donne les fonctions possible en fonction des plateformes   * **[[https://github.com/kivy/plyer|plyer sur github.com ]]** Le Readme donne les fonctions possible en fonction des plateformes
-  * **[[https://github.com/kivy/plyer/tree/master/examples|Les exemples sur gituhub]], mais c'est pour du python2, et c'est mal codé ! +  * **[[https://github.com/kivy/plyer/tree/master/examples|Les exemples sur gituhub]]**, mais c'est pour du python2, et c'est mal codé ! 
 +=====Possiblité d'accès===== 
 +===Android=== 
 +Accelerometer 
 +Audio recording  
 +Barometer 
 +Battery 
 +Bluetooth 
 +Brightness 
 +Call 
 +Camera (taking picture)  
 +Compass 
 +Email (open mail client) 
 +Flash 
 +GPS 
 +Gravity  
 +Gyroscope 
 +Humidity 
 +IR Blaster 
 +Light 
 +Native file chooser 
 +Notifications 
 +Orientation 
 +Proximity 
 +SMS (send messages)  
 +Spatial Orientation  
 +Speech to text 
 +Storage Path 
 +Temperature 
 +Text to speech 
 +Unique ID 
 +Vibrator 
 +===Linux=== 
 +Accelerometer  
 +Battery 
 +Brightness  
 +CPU count 
 +Email (open mail client)  
 +Native file chooser 
 +Notifications 
 +Screenshot  
 +Storage Path  
 +Text to speech 
 +Unique ID 
 +Wifi
 =====Exemple===== =====Exemple=====
 Vous voulez quelque chose, faîtes le vous même ! Vous voulez quelque chose, faîtes le vous même !
Ligne 110: Ligne 153:
                 on_press: root.do_toggle()                 on_press: root.do_toggle()
 </code> </code>
 +
 +===Le *apk===
 +  * {{media_08:accelbasicexample-1.1.apk|accelbasicexample-1.1.apk}}
 +=====android.permissions=====
 +  * [[https://developer.android.com/reference/android/Manifest.permission.html|Liste de toutes les permissions]]
 +Les permissions définies dans buildozer.spec crée le bouton enable/disable dans Android / Paramètres / Application pour certaine permission: par défaut, il est disable. Quand ça ne marche pas, c'est la première chose à regarder. 
 +=====Exemple Envoi de Sms=====
 +<code python main.py>
 +#! /usr/bin/env python3
 +# -*- coding: utf-8 -*-
 +
 +from kivy.app import App
 +from kivy.uix.boxlayout import BoxLayout
 +from kivy.uix.button import Button
 +from kivy.properties import StringProperty
 +
 +from plyer import sms
 +
 +class SmsInterface(BoxLayout):
 +    pass
 +
 +class IntentButton(Button):
 +    sms_recipient = StringProperty()
 +    sms_message = StringProperty()
 +
 +    def send_sms(self, *args):
 +        sms.send(recipient=self.sms_recipient, message=self.sms_message)
 +
 +class SmsApp(App):
 +    def build(self):
 +        return SmsInterface()
 +
 +    def on_pause(self):
 +        return True
 +
 +if __name__ == "__main__":
 +    SmsApp().run()
 +</code>
 +
 +<code python sms.kv>
 +<SmsInterface>:
 +    orientation: 'vertical'
 +    BoxLayout:
 +        size_hint_y: None
 +        height: sp(30)
 +        Label:
 +            text: 'Recipient:'
 +        TextInput:
 +            id: recipient
 +            multiline: False
 +            on_text_validate: message.focus = True
 +    BoxLayout:
 +        Label:
 +            text: 'Message:'
 +        TextInput:
 +            id: message
 +    IntentButton:
 +        sms_recipient: recipient.text
 +        sms_message: message.text
 +        text: 'Send SMS'
 +        size_hint_y: None
 +        height: sp(40)
 +        on_release: self.send_sms()
 +</code>
 +
 +<code python buildozer.spec>
 +[app]
 +title = Sms
 +package.name = sms
 +package.domain = org.test
 +source.dir = .
 +source.include_exts = py,png,jpg,kv,atlas
 +version = 0.3
 +requirements = python3,kivy,plyer
 +orientation = portrait
 +fullscreen = 0
 +android.arch = armeabi-v7a
 +android.permissions = READ_PHONE_STATE, SEND_SMS, RECEIVE_SMS, READ_SMS
 +
 +[buildozer]
 +log_level = 2
 +warn_on_root = 1
 +</code>
 +===Le *.apk===
 +  * {{ media_12:sms_armeabi-v7a-0.3-armeabi-v7a-debug.apk |sms_armeabi-v7a-0.3-armeabi-v7a-debug.apk}}
 +
 +===La permission SEND_SMS n'est pas acceptée par Android===
 +<code>
 +01-04 09:55:02.207  3635  3654 I python  :  jnius.jnius.JavaException: JVM exception occurred: Sending SMS message: uid 10074 does not have android.permission.SEND_SMS.
 +</code>
 +
 +Les permissions définies dans buildozer.spec crée le bouton enable/disable dans Android / Paramètres / Application pour cette permission: par défaut, il est disable. Quand ça ne marche pas, c'est la première chose à regarder.
  
  
-{{tag>kivy sb}}+{{tag> kivy python sb }}
kivy_plyer.1577991290.txt.gz · Dernière modification : 2020/01/02 18:54 de serge