안드로이드 휴대 전화를 잠자기 모드에서 잠자기 모드로 잠 그려면 어떻게 프로그래밍 할 수 있습니까? 나는 wakelock을 얻고 싶지 않습니다. 즉, 전화가 비활성화 된 상태에서 "진짜"잠에 들어간다는 것을 의미합니다. 나는 RTC (real time clock) 메커니즘을 사용할 수 있다고 생각하니?잠자기에서 안드로이드 휴대 전화를 깨우는 방법?
누구에게 사례가 있습니까?
감사합니다.
안드로이드 휴대 전화를 잠자기 모드에서 잠자기 모드로 잠 그려면 어떻게 프로그래밍 할 수 있습니까? 나는 wakelock을 얻고 싶지 않습니다. 즉, 전화가 비활성화 된 상태에서 "진짜"잠에 들어간다는 것을 의미합니다. 나는 RTC (real time clock) 메커니즘을 사용할 수 있다고 생각하니?잠자기에서 안드로이드 휴대 전화를 깨우는 방법?
누구에게 사례가 있습니까?
감사합니다.
작업을 수행 할 때 AlarmManager를 사용하여 인 텐트를 브로드 캐스트하고 장치를 웨이크 업하십시오. BroadcastReceiver에서 작업을 수행하거나 (짧으면), WakeLock (아마도 싱글 톤을 통해 )을 얻고 서비스를 시작한 다음 서비스를 수행 한 다음 서비스를 릴리스합니다. 웨이크 록.
당신은 여기에 대해 읽을 수 있습니다 활동을하도록하기 위해 https://groups.google.com/forum/#!topic/android-developers/5--QRAPlFL0
hmmm ... 나는 AlarmManager를 시도하고 전화가 "진짜"수면 (wakelock 없음)에있는 경우 전화를 깨우지 않는 것처럼 보였다. – jiawen
수면 모드에있을 때 휴대 전화를 깨우는 방법. –
@jiawen AlarmManager는 set() 대신 setAndAllowWhileIdle() 또는 setExactAndAllowWhileIdle()을 사용합니다. 이 방법으로 설정된 경보는 장치가 잠 들어있을 때에도 브래드 캐스트됩니다. – Karthiksrndrn
장치를 일어나 암호/슬쩍을 필요로하지, 당신은 단지 몇 플래그를 추가해야합니다. 그것을 얻으려면, 코드에 포함
이 것this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN |
WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON,
WindowManager.LayoutParams.FLAG_FULLSCREEN |
WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
wake up 앱 활동.
난 그냥이 작업을 수행 할 수있는 응용 프로그램을 작성, 여기에 몇 가지 예제 코드입니다 : 첫째, 나는 AlarmManager를 생성하고 특정 시간 알람 설정 :이받을 수있는 BroadcastReciever 필요
AlarmManager manager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 15);
calendar.set(Calendar.MINUTE, 30);
calendar.set(Calendar.SECOND, 0);
// if the time is before now then add one day to it
if(calendar.getTimeInMillis() < System.currentTimeMillis())
calendar.setTimeInMillis(calendar.getTimeInMillis()+86400000);
manager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 0);
을 경보. 이를 위해 나는 나의 매니페스트에 추가해야한다
<application ...>
<receiver android:name="hu.bendaf.example.AlarmReceiver"/>
...
</application>
와 나는 또한를 받게되며 내 주요 활동을 시작하는 AlarmReciever 클래스가 : 내가 가진
public class AlarmReceiver extends BroadcastReceiver {
public static final String WAKE = "Wake up";
@Override
public void onReceive(Context context, Intent intent) {
//Starting MainActivity
Intent myAct = new Intent(context, MainActivity.class);
myAct.putExtra(WAKE, true);
myAct.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(myAct);
}
}
을 내 활동의에서 onCreate 함수를 :
// Wake up phone if needed
if(getIntent().hasExtra(AlarmReceiver.WAKE) && getIntent().getExtras().getBoolean(AlarmReceiver.WAKE)){
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON,
WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
}
이 코드는 다음 15:30시에 (오늘이나 내일) 내 전화를 깨 웁니다.
언제 정확히 깨어나시겠습니까? 특정 시간 초과 후? 특정 날짜와 시간에? –
솔루션을 찾았습니까? 유용한 답변을 찾았습니까? – bendaf
질문에 대한 답을 찾거나 아래에서 질문을 받거나 질문을 수정하면 더 많은 것을 도와 드릴 수 있습니다. – bendaf