2

だから、私が実際に探しているのはこの解決策です.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」の値を取得するにはどうすればよいですか?

4

1 に答える 1

1

私はついに解決策を見つけました...それは私が望むほどの風水ではありませんが、うまくいきます.

設定画面を手作業でコーディングするだけで、「startActivityForResult」関数にアクセスできました。

この時点から、問題を解決してすべての詳細を確定するのに 3 ~ 5 分かかりました。

一部の人々に役立つことを願っています。

そこに例があります:http://www.anddev.org/code-snippets-for-android-f33/preference-screen-with-custom-views-t8472.html

しかし、私が使用したのはグーグルでしたが、リンクが見つかりませんでした。

于 2011-07-24T19:38:15.017 に答える