2016-10-10 9 views
1

プログラムでサポートされている通知音のリストを取得するのに、現在次のコードを使用しています。通知のリストをプログラムでサポートする

public static ArrayList<String> getVibratePatterns(Activity curActivity) { 
    RingtoneManager manager = new RingtoneManager(curActivity); 
    manager.setType(RingtoneManager.TYPE_NOTIFICATION); 
    Cursor cursor = manager.getCursor(); 

    ArrayList<String> list = new ArrayList<>(); 
    while (cursor.moveToNext()) { 
     // String id = cursor.getString(RingtoneManager.ID_COLUMN_INDEX); 
     // String uri = cursor.getString(RingtoneManager.URI_COLUMN_INDEX); 
     String name = cursor.getString((RingtoneManager.TITLE_COLUMN_INDEX)); 
     list.add(name); 
    } 

    return list; 
} 

同様に、サポートされている振動パターン(利用可能な場合)のリストを取得できますか?

EDIT:私は(私が間違って証明されてうれしいが)のようなものが存在するとは思わない

enter image description here

答えて

1

:この値の集合は、私が後だものです。

このリストは、setVibrate()コールにNotificationBuilderを提供するために使用した開発者によって事前に定義されたパターンに配線されている場合があります。 setVibrate()は振動パターンを決定するパラメータとしてlong[]を受け入れるので、私はあなたの望む結果を達成するのは非常に簡単だと思います。

詳細については、NotificationBuilder#setVibrateおよびVibratorクラスのドキュメントを参照してください。

+0

開発者がこれらのパターンをあらかじめ定義していても、どこからでもアクセスできるはずですか?いくつかの設定定数はこれらにアクセスするために利用可能でなければなりません。あるいは、反射を介してこれらにアクセスすることは可能でしょうか? – SoulRayder

+0

アクセス可能な場合でも、面倒なIMHOの価値はありません。 (ファイル、XMLリソース、SharedPreferencesなど)これらのパターン(基本的に 'long []'のコレクション)をアプリケーションのどこかに定義することができます。あまりにも厳しくはありませんか? –

+0

私はそれが大変ではないことに同意します。私はちょうど車を再発明したくなかった:D – SoulRayder

関連する問題