pyjniusを使ってWebブラウザを起動 - Kivy Advent Calendar 2013

ボタンを押すとブラウザで特定のWebページを開くだけ。

from kivy.uix.button import Button
from kivy.app import App
from jnius import autoclass, cast

class BrowserApp(App):

    PythonActivity = autoclass('org.renpy.android.PythonActivity')
    Intent = autoclass('android.content.Intent')
    Uri = autoclass('android.net.Uri')

    def start_browser(self, instance):
        intent = self.Intent()
        intent.setAction(self.Intent.ACTION_VIEW)
        intent.setData(self.Uri.parse(instance.text))
        currentActivity = cast('android.app.Activity', self.PythonActivity.mActivity)
        currentActivity.startActivity(intent)

    def build(self):
        button = Button(text='http://kivy.org/')
        button.bind(on_press=self.start_browser)
        return button
    
if __name__ == '__main__':
    BrowserApp().run()

Intent.ACTION_VIEWを使うことでURLに対応するアクティビティが起動します。この方法では次のようなアプリが起動できます。

URI
http: https: ブラウザ
geo: マップ
market: マーケット
tel: ダイアラ
content://contacts 連絡帳