1

電話からすべての着信音を取得して、アンドロイドのスピナーに表示することは可能ですか? コンテンツプロバイダー経由で可能ですか?

4

2 に答える 2

3

ユーザーがシステムから着信音を選択できるようにするだけの機能が必要な場合:

もう1つの答えは、多くのコードと作業が必要です。RingtoneManager.ACTION_RINGTONE_PICKER代わりにインテントを使用する方が簡単です。これにより、すべての着信音を含むスピナー付きのダイアログが起動し、ユーザーに 1 つを選択するように求められます。コード例:

public static final int REQUESTCODE_PICKRINGTONE = 1;

public void launchPickRingtoneIntent() {
    Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
    intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "Select Tone");
    startActivityForResult(intent, REQUESTCODE_PICKRINGTONE);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == REQUESTCODE_PICKRINGTONE && resultCode == RESULT_OK) {
        Uri uri = data
                  .getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);

        if (uri != null) {
            // uri contains the URI of the selected ringtone
        } else {
            // user picked "silent" as the ringtone
        }
    }
}

このインテントは、いくつかのオプションでカスタマイズできます。たとえば、サイレント オプションを非表示にすることができます。このコード例では、カスタム タイトルを使用しています。他のオプションも同様に使用されます。

于 2012-06-19T13:06:23.513 に答える
2

この例を参照してください。SimpleCursorAdapterを使用してAndroidでRingtoneManagerから着信音を表示するListViewテンプレートを使用して、 RingtoneManagerを使用して既存のすべての着信音を取得します。

于 2012-06-19T12:50:05.287 に答える