2012-06-25 2 views
0

Я хочу создать сервис (?), Который будет работать в фоновом режиме все время и запускаться при запуске системы. Кроме того, я хочу, чтобы он обнаружил двойное нажатие кнопки дома, а затем запустил указанное действие. Является ли это возможным?Домашний кнопочный прослушиватель в фоновом режиме

+0

Вы не можете поймать событие «Главная» по соображениям безопасности (боги Android не хотят, чтобы разработчики создавали приложения, которые пользователь не может выйти). – overbet13

ответ

2

1. При запуске системы вы можете сделать так:

public class PhoneStateReceiver extends BroadcastReceiver{ 

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

     if(intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)){ 
      Intent launch = new Intent(context, ServiceToLaunch.class); 
      launch.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      context.startService(launch); 
     } 
    } 
} 

В вашем манифеста добавить это:

<receiver android:name=".receiver.PhoneStateReceiver"> 
    <intent-filter> 
     <action android:name="android.intent.action.BOOT_COMPLETED" /> 
    </intent-filter> 
</receiver> 

Добавить разрешение:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 

2. Ключевое событие недоступно.

+0

Хорошо, спасибо за ваш ответ. Итак, если я не могу обнаружить нажатие кнопки дома, можно ли обнаружить, когда пользователь скользит пальцем снизу вверх в верхнюю часть экрана? –