1. ホーム
  2. java

Intent.ACTION_GET_CONTENT と Intent.ACTION_PICK の相違点

2023-10-05 01:19:34

質問

私が作っている壁紙アプリケーションで、ユーザーが自分のデバイスにある好きな画像を選んで壁紙として使えるようにしようとしています。私が書くと、なぜか

Intent myIntent = new Intent(Intent.ACTION_PICK);
myIntent.setType("image/*");
startActivityForResult(myIntent, 100);

ギャラリーに直行するけど、書くときは。

Intent myIntent = new Intent(Intent.ACTION_GET_CONTENT, null);
myIntent.setType("image/*");
startActivityForResult(myIntent, 100);

ギャラリー、またはGoogle Driveから選択させる。画像を取得するアプリを毎回ユーザーに選択させるには、どのような方法が良いのでしょうか?あるいは、なぜその2つの異なるインテント定数で違いが出るのでしょうか?

どのように解決するのですか?

最初の Intent は無効です。その のプロトコルは ACTION_PICK を指定する必要があります。 Uri を指定する必要があります。

画像を取得するアプリを毎回ユーザーに選択させるには、どのような方法が良いでしょうか?

MIMEタイプに基づいてユーザーに何かを選択させたい場合は ACTION_GET_CONTENT .

もし、ある特定のコレクション( Uri で識別される) 特定のコレクションがある場合、その中から選んでもらうために ACTION_PICK .

同数の場合は ACTION_GET_CONTENT . 一方 ACTION_PICK は正式に非推奨ではありません。 Dianne Hackborn の推奨する ACTION_GET_CONTENT .