Я очень плохо знаком с kivy и python, так что я мог бы погрузиться в глубокий конец, но я пытаюсь выяснить, как получить намерение андроида и использовать его в простом приложении kivy?
Так что я сейчас пытаюсь выяснить основные элементы дизайна и просто, как заставить вещи работать. Я хочу иметь возможность щелкнуть ссылку (например) и запустить мое приложение, а затем делать что-то, ничего сложного, просто нужно иметь возможность получить ссылку, которая передается на него с Android.
Я понял, что это связано с фильтрами намерений Android, и добавил соответствующий файл "intent_filters.xml", чтобы это работало.
Поэтому, нажав на ссылку, я запустлю мое приложение, и это хорошо.
Однако я не могу понять, как разобрать информацию, передаваемую в приложение в Android. Итак, ниже приведено очень простое приложение с кнопкой, и я просто хочу обновить кнопку, чтобы увидеть, уловили ли мои намерения или нет.
В настоящее время нажатие кнопки приводит к закрытию приложения. Когда я проверяю это на виртуальной машине Kivy, которую я использую для компиляции apk, он закрывается с сообщением о том, что «платформа» не определена (что имеет смысл, поскольку ее нет в Android), но это не сильно помогает в тестировании или отслеживании того, как заставить это работать.
Я читал кое-что, что, по-видимому, говорит о том, что это невозможно с kivy?
Кто-нибудь может подтвердить, возможно ли это в киве и если да, то как?
(Я пробовал вариации на активность. *
from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.boxlayout import BoxLayout
class TutorialApp(App):
def build(self):
self.gen_btn = Button(text='Initial',
size_hint=(.90, .10),
pos=(5, 5),
font_size=50)
self.gen_btn.bind(on_press=self.update_tutorialapp)
l = BoxLayout()
l.add_widget(self.gen_btn)
return l
def update_tutorialapp(self, *args):
st = update_button()
st.update_Message(self)
class update_button():
def update_Message(self, source):
source.gen_btn.text = "the event was called"
if platform=="android":
from jnius import cast
from jnius import autoclass
import android
import android.activity
# test for an intent passed to us
PythonActivity = autoclass('org.renpy.android.PythonActivity')
activity = PythonActivity.mActivity
intent = activity.getIntent()
intent_data = intent.getData()
source.gen_btn.text = PythonActivity.getIntent().getStringExtra(Intent.EXTRA_TEXT)
if __name__ == "__main__":
TutorialApp().run()