当方、C++、Object Pascal のWindowsネイティブExeの プログラマーです。
Python kivy Launcher で、Androdスマホ上の外部ストレージの SDカードの書き込みをしたく、
許可をとりたいのですが、
方法1)
ACTIVITY_CLASS_NAME = 'org.renpy.android.PythonActivity' REQUEST_EXTERNAL_STORAGE = 1 mActivity = autoclass(ACTIVITY_CLASS_NAME).mActivity mActivity.requestPermissions(['android.permission.WRITE_EXTERNAL_STORAGE'], REQUEST_EXTERNAL_STORAGE)
とすると、requestPermissionsの実行で、Launcher が終了します。
方法2)
1)とは別に、github にて、permissions.py を入手しましたが、当該コードの中で参照している
ACTIVITY_CLASS_NAMESPACE の中身が分からず
class _onRequestPermissionsCallback(PythonJavaClass): """Callback class for registering a Python callback from onRequestPermissionsResult in PythonActivity. """ __javainterfaces__ = [ACTIVITY_CLASS_NAMESPACE + '$PermissionsCallback'] __javacontext__ = 'app' def __init__(self, func): self.func = func super(_onRequestPermissionsCallback,self).__init__()
上記クラスの作成時に、
ACTIVITY_CLASS_NAMESPACE + '$PermissionsCallback'
が、ClassName not found になってしまいます。
SDカードの書き込み許可をとりたいのですが、
1)または2)の方法でも実現できず、困り果てています。
1)または2)の解決手段 または、SDカードの書き込み許可を取る方法の
アドバイスをいただけないでしょうか?
【2022/05/06】追記
Launcherで落ちるのは、以下のシンプルなアプリで再現します。
from kivy.app import App from kivy.uix.label import Label class HelloWorldApp(App): def build(self): return Label(text="Hello World") if __name__=='__main__': HelloWorldApp().run()
あなたの回答
tips
プレビュー