안녕하세요, 서비스와 함께 전화를 잠금 해제하고 싶습니다. 나는 경보 관리자를 사용하고있다. 수신기 및 서비스 RECEIVE_BOOT_COMPLETE 및 WAKE_LOCK 에 대한 AlarmReceiver잠금 해제 화면에서 전화 깨우기 android
public class AlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
setAlarms(context);
}
public static void setAlarms(Context context) {
cancelAlarms(context);
PendingIntent pIntent = createPendingIntent(context);
Calendar calendar = Calendar.getInstance();
setAlarm(context, calendar, pIntent);
}
@SuppressLint("NewApi")
private static void setAlarm(Context context, Calendar calendar, PendingIntent pIntent) {
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) {
alarmManager.setExact(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pIntent);
} else {
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pIntent);
}
}
public static void cancelAlarms(Context context) {
PendingIntent pIntent = createPendingIntent(context);
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
alarmManager.cancel(pIntent);
}
private static PendingIntent createPendingIntent(Context context) {
Intent intent = new Intent(context, AlarmService.class);
return PendingIntent.getService(context, 777, intent, PendingIntent.FLAG_UPDATE_CURRENT);
}
}
AlarmService을 또한 권한을 명시 추가되었습니다
public class AlarmService extends Service {
public static String TAG = AlarmService.class.getSimpleName();
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Intent alarmIntent = new Intent(getBaseContext(), MainActivity.class);
alarmIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
alarmIntent.putExtras(intent);
getApplication().startActivity(alarmIntent);
//AlarmManagerHelper.setAlarms(this);
Log.e("SERVICE_WORKING","YEEEES!!!!");
return super.onStartCommand(intent, flags, startId);
}
}
MainActivity
Intent myIntent = new Intent(MainActivity.this, AlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(MainActivity.this, 0, myIntent, 0);
AlarmManager alarmManager=(AlarmManager) getApplicationContext().getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC, calendar.getTimeInMillis()+10000, pendingIntent);
그것은 잘 작동하지만 난을 잠글 경우 화면이 잠금 해제되지 않습니다.
휴대 전화를 잠금 해제하면 무엇을 의미합니까? 잠금 해제를 위해 비밀번호 나 핀이 있어도 휴대 전화의 잠금을 해제하고 기기 수면에서 기기로 이동하는 경우 실행기 상태가 실행되는 화면에 있습니까? 그래서이 경우 불가능합니다. – krossovochkin
죄송합니다. 화면 잠금 해제를 의미합니다. –