2014-11-07 6 views
2

Какой-то сложный вопрос. Я работаю с одним приложением, с помощью которого пользователь может установить индивидуальный рингтон входящего вызова и различный уровень вибрации для разных контактов.Как изменить входящий звонок Уровень вибрации при входящем звонке?

Я застрял с настройкой уровня вибрации. Мы можем установить уровень вибрации использованием,

Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); 

// 1. Vibrate for 1000 milliseconds 
long milliseconds = 1000; 
v.vibrate(milliseconds); 

// 2. Vibrate in a Pattern with 500ms on, 500ms off for 5 times 
long[] pattern = { 500, 300 }; 
v.vibrate(pattern, 5); 

Это то, что о вибрирует мой телефон. Но я хочу установить уровень вибрации входящего вызова. Пользователь может устанавливать различные предопределенные параметры вибрации.

Используя этот код, я могу установить Vibration ON-OFF. Но не знаю, как установить уровень вибрации.

String VIBRATE_IN_SILENT_SETTING_NAME = "vibrate_in_silent"; 
Settings.System.putInt(getContentResolver(), VIBRATE_IN_SILENT_SETTING_NAME, 1); 

Я надеюсь, что кто-то может дать совет по этой проблеме. предложения приветствуются.

+0

действительно ли код работал на вас? –

+0

@JordiCastilla Nop. Я не смог добиться успеха. Если вам повезет, вы можете поделиться. –

ответ

0

Если вы хотите сделать более низкую вибрацию вам необходимо создать шаблон с blankspaces в середине.

Используйте константы, как:

int dot = 200;  
int short_gap = 200; // Length of Gap 

, а затем определить массив и шаблон:

long[] pattern = { 
    0, // Start immediately 
    dot, short_gap }; 

, то вы можете позвонить:

v.vibrate(pattern, x); 

// x value: 
// 0 repeat infinite 
// -1 no repeat 
// n number of repetitions 

Изменяя длину от точки и разрыва (или определяя новые для выполнения различных паттернов), вы можете модулировать мощность вибрации.

EDIT1: Вот мой VibrationConstants.java

public class VibrationConstants {       

    private static int p = 5; // five millisecond of vibration 
    private static int s = 5; // five millisecond of break - could be more to 
        // weaken 
        // the vibration 
    private static int pp = 10; // ten millisecond of vibration 
    private static int ss = 10; // ten millisecond of break - could be more to 
       // weaken 
       // the vibration 
    private static int ppp = 50; // fifty millisecond of vibration 
    private static int sss = 50; // fifty millisecond of break - could be more to 
       // weaken 
       // the vibration 

    public static long[] HARD_VIBRATION = { 0, ppp, sss }; 
    public static long[] MIDDLE_VIBRATION = { 0, pp, ss }; 
    public static long[] SOFT_VIBRATION_2 = { 0, p, s }; 

    public static long[] PATTERN_VIBRATION = { 0, 250, 200, 250, 150, 150, 75, 
     150, 75, 150 }; 
} 

Итак, когда вы хотите назвать это:

v.vibrate(VibrationConstants.SOFT_VIBRATION_2, x); 

// x value: 
// 0 repeat infinite 
// -1 no repeat 
// n number of repetitions 

Попробуйте также путем изменения только значения разрыва, если результат с теми же значениями в вибрации и разломах не так точно, как вы ожидаете. Это делает приятные эффекты. :)

Надеюсь, что это поможет, я попытался найти образцы от таких брендов телефонов, как Google Samsung или Xperia, но я не смог найти их ... поэтому у нас были хорошие результаты с этими шаблонами для имитации, но все зависит от ваших требований ,

Я уверен, что вам нужно будет сделать некоторые тесты, чтобы достичь цели ур, но это не так сложно.

+0

Вы не получили мой вопрос правильно. Я хочу установить уровень вибрации при входящем звонке. –

+0

Я думаю, да.Но вы не можете установить уровень вибрации, потому что для этого нет никакой возможности. Я столкнулся с этой проблемой в прошлом, и только решение, которое я нашел, работало, имитировало его по шаблонам. –

+0

Yeh. Я пытался вибрировать такой телефон, но телефон не работает в соответствии с нашей потребностью. Не могли бы вы поделиться каким-то кодом с приемником входящих вызовов, если это возможно? Это очень поможет. –

 Смежные вопросы

  • Нет связанных вопросов^_^