Metadata-Version: 2.1
Name: pykivdroid
Version: 0.0.2
Summary: Python tools to control android
Home-page: https://github.com/Sahil-pixel/Pykivdroid
Author: SK SAHIL
License: MIT
Description: # Pykivdroid
        pykivdroid is a python module to control android
        
        ### Requirements
          kivy,android,pyjnius
          
        
        ### Introduction
        ```
             pykivdroid is python module to control Android.
             To test all this things you have to use android device.
              
        
        ```
        #### Classes and mActivity
        ```python
        # I have defined java android class 
        # Camera = autoclass('android.hardware.Camera')
        # And Nested class. N use to indicate nested 
        # CameraNCameraInfo=autoclass('android.hardware.Camera$CameraInfo')
        # mActivity is App's activity
        from pykivdroid import mActivity,Camera,CameraNCameraInfo
        ```
        #### Orientation
        ```python
        from pykivdroid import orientation
        #To get current orientation
        a=orientation.get_orientation()
        print(a)
        
        #To set orientation 
        #you can set any mode 'user','portrait','landscape' etc
        orientation.set_orientation(mode='user')
        
        ```
           
        
        #### Brightness
        ```python
        from pykivdroid import brightness,write_settings
        '''
        Required Permissions:
            WRITE_SETTINGS
        '''
        #To get current brightness
        a=brightness.get_brightness()
        print(a)
        #To set brightness
        #minimum brightness is 0, maximum is 100
        write_settings(sdk_int, version_code) #TO GET PERMISSION
        brightness.set_brightness(50)
        ```
        ### Speech to text
        ```python
        from pykivdroid.stt import STT
        '''
             Android Permissions:INTERNET,RECORD_AUDIO
        '''
        ###you can set language and mode offline or online 
        sttobj=STT(language='en-US',prefer_offline=False)
        #To start
        sttobj.start()
        #speech to text exsist or not 
        a=sttobj.exist()
        print(a)
        #To stop
        sttobj.stop()
        #results
        print(sttobj.results)
        #partial
        print(sttobj.partial)
        #errors
        print(sttobj.errors)
        #listening or not
        print(sttobj.listening)
        #partial result
        print(sttobj.partial_results)
        
        ```
        ### File Picker
        ```python
        #Android permissions READ_EXTERNAL_STORAGE
        from pykivdroid.picker import AndroidPicker
        def callback(uri):
             print(uri)
        ap=AndroidPicker(callback)
        ap.pick_file(MIME_type='*/*')
        
        
        ```
        ```python 
        ####simple example
         
        from kivy.app import App
        from kivy.uix.boxlayout import BoxLayout
        from kivy.uix.button import Button
        from kivy.uix.textinput import TextInput
        from pykivdroid.picker import AndroidPicker
        from pykivdroid import request_permissions,Permission
        
        
        class MyApp(App):
            def build(self):
                request_permissions([Permission.READ_EXTERNAL_STORAGE])
                self.box=BoxLayout(orientation="vertical")
                self.ap=AndroidPicker(self.call)
                self.ti=TextInput()
                self.box.add_widget(Button(text='OPEN AndroidPicker',on_release=self.callback))
                self.box.add_widget(self.ti)
                return self.box
            def callback(self,obj):
                self.ap.pick_file()
        
            def call(self,uri):
                print(uri)
                self.ti.text=str(uri)
        
        
        
        MyApp().run()
        
        ```
        
        ### Android Video View
        ```python
        from pykivdroid.videoview import AndroidVideoView
        
        videoview=AndroidVideoView()
        
        videoview.set_video_uri(uri)
        #or
        videoview.set_video_path(path)
        #to start 
        videoview.start()
        #to seek any position
        videoview.seek_to(ms)
        #to stop
        videoview.stop_playback()
        #pause
        videoview.pause()
        #resume
        videoview.resume()
        #get duration
        videoview.get_duration()
        #get current position
        videoview.get_current_position()
        #to get audio session id 
        videoview.get_audio_session_id()
        #playing or not
        print(videoview.is_playing())
        ######for more info. read videoview.py in pykivdroid 
        ```
        ```python
        #simple example with kivy
        from kivy.app import App
        from kivy.uix.boxlayout import BoxLayout
        from kivy.uix.button import Button
        from kivy.uix.textinput import TextInput
        from pykivdroid.picker import AndroidPicker
        from pykivdroid import request_permissions,Permission
        from pykivdroid.videoview import AndroidVideoView
        
        
        class MyApp(App):
            def build(self):
                request_permissions([Permission.READ_EXTERNAL_STORAGE])
                self.box=BoxLayout(orientation="vertical")
                self.ap=AndroidPicker(self.call)
                self.vv=AndroidVideoView()
                self.box.add_widget(self.vv)
                self.box.add_widget(Button(text='choose video',on_release=self.callback))
                
                return self.box
            def callback(self,obj):
                self.ap.pick_file()
        
            def call(self,uri):
                print(uri)
                self.vv.set_video_uri(uri)
                self.vv.start()
        
        
        
        MyApp().run()
        
        ```
        ### Text To Speech
        ```python
        #permission INTERNET
        from pykivdroid.tts import TTS
        tts=TTS()
        tts.speak('text to speak')
        ##see also and for more info see tts.py in pykivdroid.
        tts.get_voices()
        tts.get_language()
        tts.get_engines()
        tts.get_duration()
        tts.get_available_languages()
        tts.get_default_voice()
        tts.get_max_input_length()
        tts.get_default_engine()
        tts.set_voice(voice)
        tts.set_pitch(pitch)
        tts.set_language(loc)
        tts.set_speech_rate(rate)
        tts.is_speaking()
        tts.is_language_available(loc)
        
        ```
        
        
        ```python
        #example with kivy
        #permission INTERNET
        from kivy.app import App
        from kivy.uix.boxlayout import BoxLayout
        from kivy.uix.button import Button
        from kivy.uix.textinput import TextInput
        from kivy.uix.slider import Slider
        from pykivdroid.tts import TTS
        from pykivdroid import ArrayList,Arrays
        
        
        class MyApp(App):
            text='Python is good programming language'
            i=0
            def build(self):
        
                self.box=BoxLayout(orientation="vertical")
        
                self.ti=TextInput(text=self.text)
        
                #slider used to change pitch
                self.sldr=Slider(min=0,max=1,value=0.5)
                #slider used to change speech rate
                self.sldr2=Slider(min=0,max=1,value=0.5)
                #1)tts object
                self.tts=TTS()
                
                #self.voice=self.tts.get_voices()
        
            
                self.box.add_widget(self.ti)
                self.box.add_widget(self.sldr)
                self.box.add_widget(self.sldr2)
                self.box.add_widget(Button(text='speak',on_release=self.callback))
                
                return self.box
            def callback(self,obj):
                #changing voice
        
                voice=self.tts.get_voices()
                
                if self.i==len(voice):
                    self.i=0
                
                self.tts.set_voice(voice[self.i])
        
               
                
               
                
                self.tts.set_pitch(self.sldr.value)
                self.tts.set_speech_rate(self.sldr2.value)
                self.tts.speak(self.ti.text)
                #print(self.tts.get_voices())
                self.i+=1
        
        
        
           
        MyApp().run()
        
        ```
        
        ### Unity Ads
        ```
        1)Download Unity-ads.aar from unity ads 
        
        2)Create libs folder within your project folder
        
        3)Add Unity-ads.aar to your /libs folder
        
        4)update buildozer.spec 
        
        android.add_aars = ./libs/*.aar
        android permissions = INTERNET,ACCESS_NETWORK_STATE
        ```
        #### Unity Interstitial and Reward ads 
        ```python
        '''
        1)Download Unity-ads.aar from unity ads 
        
        2)Add Unity-ads.aar to your /libs folder
        
        update buildozer.spec 
        
        android.add_aars = ./libs/*.aar
        android permissions = INTERNET,ACCESS_NETWORK_STATE
        '''
        from kivy.app import App
        from kivy.uix.button import Button 
        from kivy.uix.boxlayout import BoxLayout
        from pykivdroid.unityads import UnityHandler
        
        class MyApp(App):
            def build(self):
                self.box=BoxLayout(orientation='vertical')
                 #1 step 
                self.uh=UnityHandler(app_id='put app id here',)
                 #2 set ads_type="reward" or "interstitial",test_mode=True or False,callback is used for Reward ads status for interstitial put callback=None
                self.uh.init_ads(ads_type="reward",test_mode=True,callback=self.call_status)
        
                self.box.add_widget(Button(text='show reward ads',on_release=self.call))
                return self.box
        
            def call(self,obj):
                self.uh.show_ads('put ads id here')
        
            def call_status(self,status):
                print("reward : ",status)
        
        
        MyApp().run()
        
        ```
        ##### Unity Banner ads 
        ```  I have implemented unity banner ads but test mode is only working in India ```
        
        [Banner ads issue](https://forum.unity.com/threads/could-not-show-banner-due-to-no-fill-for-placement.610948/)
        ```python
        #simple example
        from kivy.app import App
        from kivy.uix.button import Button 
        from kivy.uix.boxlayout import BoxLayout
        from pykivdroid.unityads import UnityHandler
        
        class MyApp(App):
            def build(self):
                self.box=BoxLayout(orientation='vertical')
                self.uh=UnityHandler(app_id='put app id ',)
                #self.uh.init_ads(ads_type="reward",test_mode=False,callback=self.callback)
                self.uh.init_banner_ads('put ads id',test_mode=True,top_pos=True)
                self.uh.load_banner()
        
                
        
                self.box.add_widget(Button(text='show banner ads',on_release=self.call))
                self.box.add_widget(Button(text='hide banner ads  ',on_release=self.call2))
                return self.box
            def call2(self,obj):
                self.uh.hide_banner()
        
            def call(self,obj):
                
                self.uh.show_banner()
                self.uh.load_banner()
        
                #self.uh.show_ads()
            def callback(self,*a):
                print("hello",a)
        
        
        MyApp().run()
        
        ```
        
Keywords: python,kivy,android,pyjnius
Platform: UNKNOWN
Description-Content-Type: text/markdown
