Заставить телефон андроида вибрировать, как только питание включено

Я строю устройство для слепых.

Я хочу переназначить низкое устройство Android для этой задачи. С точки зрения аппаратного обеспечения мне нужно

  • Одна физическая домашняя кнопка (для инициирования взаимодействий все остальное делается через речь и выход
  • Разумный микрофон и колонки
  • разумное количество процессора и памяти
  • root (нам нужно получить root права, чтобы иметь возможность отключать устройство)
  • Данные 3G

Он работает на разных устройствах, но лучше всего подходит карман Samsung, но есть одна проблема, которую я не могу решить.

Когда пользователь включает устройство, оно не дает никакой визуальной обратной связи. Большинство устройств вибрируют при включении питания. Слепой должен уметь определить, достаточно ли долго он держал кнопку. Карман не обеспечивает никакой визуальной обратной связи, и, что еще хуже, если вы удерживаете его слишком долго, он снова выключается.

Можно ли изменить это поведение? Я надеюсь, что это в загрузочном роме. Я рутирую карман, используя update.zip (home/vol_up/power ...), так что я могу делать там практически все, но я никогда не создавал пользовательский загрузочный диск.

Я заметил, что он поставляется с предустановленным Odin, если это облегчает

Я немного не в своей зоне комфорта, поэтому любые советы очень ценятся.

Эндрю

2 ответа

Вы можете создать приемник BroadCast, который при включении телефона вызывается и вызывается метод OnReceive, и вы можете написать код включения вибрации устройства.

Вот что вам нужно. Создать BroadCastReceiver как этот фрагмент:

public class MyBroadcastReceiver extends BroadcastReceiver{

@Override
public void onReceive(Context context, Intent intent) {


                Intent it = new Intent(); 
                it.setAction("your.package.name.MyBroadcastReceiver");
                context.startService(it); //Start a service

}

}

И добавьте это в свой манифест:

<receiver android:name="your.package.name.MyBroadcastReceiver" >
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" >
            </action>

            <category android:name="android.intent.category.HOME" >
            </category>
        </intent-filter>
    </receiver>

Затем создайте такой сервис

public class YourService extends Service {



@Override
public void onStart(Intent intent, int startId) {
    super.onStart(intent, startId);



    Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
    long[] pattern = { 0, 300, 0 };
    v.vibrate(pattern, 0); // Use this to vibrate

    // rdlVibrator.cancel(); Use this to stop the vibration


}

@Override
public IBinder onBind(Intent intent) {
    // TODO Auto-generated method stub
    return null;
}

}

И, наконец, добавьте это в ваш файл манифеста:

 <service
        android:name="your.package.name.YourService"
        android:process=":my_process" >
        <intent-filter>
            <action android:name="your.package.name.YourService" >
            </action>
        </intent-filter>
    </service>

Если у вас есть какие-либо вопросы, просто спросите. Надеюсь, поможет.

Другие вопросы по тегам