アプリからKivyLauncherを呼び出す - Kivy Advent Calendar 2013
Android/pyjniusばっかりは飽きたって? ごめんなさい。今回で最後にします。
KivyLauncherを使っていて今とは別のアプリを実行したい場合、終了させるとHome画面に戻って、再度KivyLauncherを立ち上げないといけないですよね。
結構気になりますよね? はい。
要はKivyアプリからKivyLauncher自体を立ち上げてしまえばいいんです。重複では起動しないので問題は起こらないはず...たぶん?
(/sdcard/kivy/back/)
android.txt | お約束 |
main.py | プログラム本体 |
(main.py)
from kivy.uix.button import Button from kivy.app import App from jnius import autoclass, cast class BackApp(App): PythonActivity = autoclass('org.renpy.android.PythonActivity') Intent = autoclass('android.content.Intent') Uri = autoclass('android.net.Uri') def back_to_launcher(self, instance): intent = self.Intent("org.renpy.LAUNCH", self.Uri.parse("kivy:/sdcard/kivy/")) intent.setClassName("org.kivy.pygame", "org.renpy.android.ProjectChooser") activity = cast('android.app.Activity', self.PythonActivity.mActivity) activity.startActivity(intent) def build(self): button = Button(text='back to launcher') button.bind(on_press=self.back_to_launcher) return button if __name__ == '__main__': BackApp().run()
解説
- 本当は「Kivyアプリ」から「別のKivyアプリ」を起動できないか試していたんですけど、うまくいかなかったんですね。でもランチャ部分 (org.renpy.android.ProjectChooser) なら実行できたので、まあ予定変更ということで...