2016-09-27 7 views
0

대화 형 모드에서 항상 Android 마모 앱을 유지할 수있는 방법이 있는지 알아야합니다. (배터리 수명을 늘릴 것입니다.)Android 마모로 앱을 코딩하여 화면을 항상 활성 상태로 유지하는 방법은 무엇인가요? (항상 대화 형 모드에서)

시계 반대 방향으로 움직일 때마다 시계 방향이 바뀔 수 있습니까?

+0

가능성이 높습니다. 또한 여기에는 화면이 최대한 활용되는 대화 형 모드와 프로세서의 저/고 전력 모드가 있다는 것을 기억해야합니다. 예를 들어 WakeLock을 사용하면 프로세서를 활성 상태로 유지할 수 있지만 화면이 꺼지지는 않습니다. –

+0

이 정보가 여전히 유용한 정보인지는 모르겠지만, 네가 원하는 것을 얻기 위해 4 개의 wakelocks 중 3 개를 사용하는 Referee Watch가 있습니다. "[그것은] 화면이 꺼지지 않도록하지 않을 것"이라고 정확하지 않습니다. 그렇게 할 수도 있습니다. 나에게 PM 세부 사항을 원한다면. – Opus1217

답변

1

답변은 "앱"이 활동인지 서비스인지에 따라 다릅니다.

활동은 더 이상 수행 할 필요없이 단순히 android:keepScreenOn="true"을 지정해야합니다.

서비스 (예 : 알람/타이머 시계 모드로 설정하는 경우)는 투명한 "항상 켜기"활동을 ​​시작하는 것이 좋습니다. AFAIK, 현재, 시스템은 귀하의 서비스가 정상적인 스크린 - 온주기 이상으로 전체 후류 잠금 상태로 화면을 유지하는 것을 허용하지 않을 것입니다. 이는 웨이크 잠금 장치의 오용으로 인한 것일 수 있습니다. 액티비티를 사용하면 현재 가능하며 (예 : 사이드 버튼 누름, 손바닥 등) 부작용을 처리 할 수있는 이점이 있습니다. 한 세트의 "타이머"시계 모드에서 비슷한 패턴을 사용했습니다.

서비스/활동에서 시계를 깨어에 대한 책임 : 여기

당신이 서비스에서 항상-에 달성 할 수있는 방법은

private PowerManager.WakeLock mFullWakeLock; 

// Initialization... 
PowerManager pm =(PowerManager) getSystemService(Context.POWER_SERVICE); 
mFullWakeLock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "WatchFaceAlarmWokenUp"); 

// Elsewhere, when the watch needs to be woken by the service... 
// Wake the watch to give ourselves some time to start the activity 
mFullWakeLock.acquire(2000l); 

Intent intent = new Intent(this, AlarmExpiredActivity.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(intent); 

다음과 같은 속성을 지정해야합니다 AlarmExpiredActivity 레이아웃 : android:keepScreenOn="true"

android:onClick="hide"을 지정하여 사용자가 시계를 고갈시키는 것을 쉽게 제거 할 것을 권장합니다.