だから、私が実際に探しているのはこの解決策です.Androidの組み込みギャラリーアプリからプログラムで画像を取得/選択しますが、アクティビティではなく設定で作業します。
設定に入れるクラスを作成しました。そのクラスを使用して、ユーザーが電話で選択した画像の URI を見つけられるようにしたいと考えています。「startActivityForResult」のため、そのリンクのコードを使用できませんでした。プリファレンスでは利用できません。
これをバイパスする方法はありますか?
経過報告:
ということで、とりあえず色々試してみました。代わりに、私の設定では、次を追加しました。
<Preference
android:key="test"
android:title="open image"
android:persistent="true">
<intent android:action="android.intent.action.GET_CONTENT"
android:value="image/*"/>
</Preference>
まず、「GET_CONTENT」ではなく「PICK」だったのですが、それではGoogleドキュメントとSim Card Tool Kitしか使えず、ギャラリーやファイルシステムを閲覧するものとはかけ離れています。
「GET_CONTENT」でクラッシュします。
読みたいだけでも、「android.permission.WRITE_EXTERNAL_STORAGE」権限も追加しました。しかし、私は何も見つけられませんでした(書くのではなく読むように頼む方法がある場合は、これをサブの質問にしましょう)。
進捗報告 #2
android:value を android:mimeType に置き換えて、ギャラリーに直接移動します。さて、本当にURIを取得して解決したかどうかを知る必要があります.
進捗報告 #3
この時点で、ここに本当の問題があります。SharedPreferences を実行すると、画像を選択した後でも値が空のままになります。だから、ちょっとしたハックがあると思います。では、それが問題です。上記の設定画面の例に基づいて、インテントが呼び出されたときにどこかに配置されていると仮定して、「test」の値を取得するにはどうすればよいですか?