from jnius import autoclass, cast
PythonActivity = autoclass('org.renpy.android.PythonActivity')
Intent = autoclass('android.content.Intent')
Context = autoclass('android.content.Context')
activity = cast('android.app.Activity', PythonActivity.mActivity)
# following line doesn't work
manager = autoclass('android.content.pm.PackageManager')
# or:
# manager = activity.getPackageManager()
intent = manager.getLaunchIntentForPackage("org.test.myapp")
intent.addCategory(Intent.CATEGORY_LAUNCHER)
activity.startActivity(intent)
[WARNING ] stderr: Traceback (most recent call last):
[WARNING ] stderr: File "main.py", line 60, in <module>
[WARNING ] stderr: intent = manager.getLaunchIntentForPackage("org.test.myapp")
[WARNING ] stderr: File "jnius_export_class.pxi", line 548, in jnius.jnius.JavaMethod.__call__ (jnius/jnius.c:17787)
[WARNING ] stderr: File "jnius_export_class.pxi", line 503, in jnius.jnius.JavaMethod.ensure_method (jnius/jnius.c:17236)
[WARNING ] stderr: jnius.jnius.JavaException: Unable to find a None method!
getLaunchIntentForPackage.
jnius_export_class.pxi, but couldn't get any further with that.
https://github.com/kivy/pyjnius/blob/master/jnius/jnius_export_class.pxi
Does someone know a solution?
Regards,
XR
# -*- coding: utf-8 -*-
__version__ = '1.0'
import kivy
kivy.require('1.0.7')
from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.widget import Widget
from android import AndroidService
from jnius import autoclass, cast
class TestApp(App):
def build(self):
self.service = None
self.app_started = False
root = Widget()
btn = Button(text='start app', size_hint=(.5, .1),pos_hint={'center_x': .5, 'center_y': .5})
btn.bind(on_press=self.start_app)
root.add_widget(btn)
return btn
def on_pause(self):
if not self.app_started:
service = AndroidService('Service', 'service is running')
service.start('Hello From Service')
self.service = service
return True
def on_resume(self):
if self.service:
self.service.stop()
self.service = None
self.app_started = False
return True
def start_app(self,instance):
self.app_started = True
PythonActivity = autoclass('org.renpy.android.PythonActivity')
Intent = autoclass('android.content.Intent')
Context = autoclass('android.content.Context')
activity = cast('android.app.Activity', PythonActivity.mActivity)
#manager = autoclass('android.content.pm.PackageManager')
# or:
manager = activity.getPackageManager()
intent = manager.getLaunchIntentForPackage("org.kivy.touchtracer")
intent.addCategory(Intent.CATEGORY_LAUNCHER)
activity.startActivity(intent)
if __name__ == "__main__":
TestApp().run()
# -*- coding: utf-8 -*-
from jnius import autoclass, cast
from kivy.core.audio import SoundLoader
import time
def play_sound():
sound = SoundLoader.load("Bubamara.MP3")
sound.play()
time.sleep(1)
sound.stop()
if __name__ == '__main__':
# to see, if the service really gets started
# play a soundfile.
# place it in the service directory
#play_sound()
PythonActivity = autoclass('org.renpy.android.PythonActivity')
Intent = autoclass('android.content.Intent')
Context = autoclass('android.content.Context')
activity = cast('android.app.Activity', PythonActivity.mActivity)
# this line causes the error in kivys logfile:
# jnius.jnius.JavaException: Unable to find a None method!
manager = autoclass('android.content.pm.PackageManager')
# this line crashes kivy
# no error gets thrown
#manager = activity.getPackageManager()
intent = manager.getLaunchIntentForPackage("org.kivy.touchtracer")
intent.addCategory(Intent.CATEGORY_LAUNCHER)
activity.startActivity(intent)