2016-10-10 4 views
1

Actuellement, j'utilise le code suivant pour obtenir la liste des sons de notification pris en charge par programmation.Obtenir la liste des modèles de vibreurs de notification pris en charge par programmation

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; 
} 

Est-il possible d'obtenir de la même manière la liste des modèles de vibration pris en charge pour les notifications (si disponible)?

EDIT: Cet ensemble de valeurs est ce que je suis après:

enter image description here

Répondre

1

Je ne crois pas existe une telle chose (bien que je suis heureux d'être démenties).

Cette liste que vous voyez pourrait être câblée à des modèles prédéfinis par le développeur qui a ensuite utilisé pour fournir l'appel setVibrate() dans NotificationBuilder. Depuis setVibrate() accepte long[] comme paramètre pour déterminer le modèle de vibration, je pense que c'est assez trivial pour atteindre le résultat souhaité.

Vous pouvez en apprendre plus dans la documentation de NotificationBuilder#setVibrate et de la classe Vibrator.

+0

Même si le développeur a prédéfini ces modèles, ils devraient être accessibles à partir de quelque part non? Certains paramètres constants devraient être disponibles pour y accéder. Ou serait-il possible d'y accéder par la réflexion? – SoulRayder

+0

Même si elle est accessible, il ne vaudra pas la peine à mon humble avis. Vous pouvez simplement définir ces modèles (qui, encore une fois, est essentiellement une collection de 'long []' s) quelque part dans votre application (un fichier, une ressource XML, SharedPreferences, etc). Ne devrait pas être trop dur, non? –

+0

Je suis d'accord c'est pas dur. Je ne voulais pas réinventer la roue: D – SoulRayder