4

曲に関するメタ情報を提供するアクティビティを使用して曲を選択しようとしています。単純なファイル ブラウザの代わりにこれを実行したいと考えています。次のコードがありますが、残念ながらクリックすると曲も再生されます。MediaStoreユーザーが曲を選択して、後で再生せずに操作できるようにしたいだけです。

public class Main extends Activity {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Intent intent = new Intent();
        intent.setAction(android.content.Intent.ACTION_PICK);
        intent.setData(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI);
        startActivity(intent);
    }
}
4

1 に答える 1

5

私が知る限り、あなたが見ている「ピッカー」は「プレビュー」タイプのデザインです (携帯電話で見ています)。

たとえば、着信音を「選択」するのと少し似ています...

リストが表示され、それぞれを順番に選択して「プレビュー」を取得できます。必要な着信音を決定したら、[OK] をクリックすると、選択が返されます。[キャンセル] をクリックすると、元の状態のままになります (既存の着信音の選択は保持されます)。

ピッカーのこの動作をオーバーライドする方法がわかりません。また、やりたいことを達成するための代替方法 (たとえば、インテント パラメーター) も見つかりませんでした。

言い換えれば、私が理解しているように、ユーザーに静かに音楽を選んでアクティビティに戻してもらいたいだけですが、(プレビュー) ピッカーはそのようには機能しません。

ただし、ユーザーがピッカーで [OK] をクリックすると、ユーザーがプレビュー/選択したものを確認できます。

startActivityForResult(intent, 1234);

1234 は単なる任意のコードであることに注意してください。

onActivityResult() に返される Intent を確認すると、ユーザーが [OK] を押す前に選択した曲のコンテンツ Uri が含まれます。

于 2011-04-08T02:21:35.180 に答える