2014-12-27 6 views
0

내 목표는 이미지 URL의 내용을 X 초마다 가져 와서/media/screensavers/Messages 디렉토리에 쓴 다음 잠금을 해제하고 새로 다운로드 한 이미지가 표시되도록 장치를 다시 연결합니다 (Nook Simple Touch).안드로이드 화면 잠금 해제, 화면 잠금 해제 (누크 심플 터치)

알람이 울리면 이미지가 다운로드됩니다 (Android Studio logcat을 통해 볼 수 있음). 문제는 구석이 잠금 해제되지 않는다는 것입니다. (화면이 업데이트되지 않습니다).

가 여기에 내가 How to programmatically dismiss the screensaver/lock screen on Android (Nook Simple Touch)

Window win = getWindow(); 
win.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD); 

하지만 getWindow()에서이 코드를 시도 AlarmReceiver.java

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

    // Log to logcat 
    Log.i("AlarmReceiver", "onReceive() -- onReceive fired! "); 

    // Create the dummy image url 
    String currentDateTimeString = DateFormat.getDateTimeInstance().format(new Date()); 
    String imgPath = new String(); 
    imgPath = "http://dummyimage.com/600x800/fff/000.jpg&text=" + currentDateTimeString ; 
    imgPath = imgPath.replaceAll(" ", "+"); 

    // Download and save the image (works great) 
    new DownloadImageTask().execute(imgPath); 

    // Now how do I a) unlock the device, then b) put it back to sleep? 

} 

에서 내 코드 것은 (방법을 확인할 수 없음) RED입니다.

context.getWindow()을 사용해 보았지만 오류가 있습니다. onReceiver 컨텍스트 내에서 getWindow에 어떻게 액세스합니까?

목표 : (완료)

  1. 다운로드 이미지 디렉토리에
  2. 쓰기 이미지 (완료)
  3. 잠금 해제 장치
  4. 잠금 devive

를 통해 '스크린 세이버'이미지를 새로 고침 감사!

+0

'AlarmReceiver'에는 이러한 종류의 메소드가 없으므로, 액티비티를 구현하고 시작해야합니다. – gio

답변

0

수신자가 아닌 액티비티를 사용하여 전환해야했습니다. 내가 그 짓하면

, 나는 알람 활동에 다음 코드를 넣어 :

KeyguardManager km = (KeyguardManager) getApplicationContext().getSystemService(Context.KEYGUARD_SERVICE); 
     final KeyguardManager.KeyguardLock kl = km.newKeyguardLock("MyKeyguardLock"); 
     kl.disableKeyguard(); 

     PowerManager pm = (PowerManager) getApplicationContext().getSystemService(Context.POWER_SERVICE); 

     PowerManager.WakeLock wakeLock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK 
       | PowerManager.ACQUIRE_CAUSES_WAKEUP 
       | PowerManager.ON_AFTER_RELEASE, "MyWakeLock"); 
     wakeLock.acquire(1000); 

위의 코드는 구석의 잠금을 해제! 깃발이있는 getWindow() 메소드가 구석쥐 터치에서 작동하지 않는 것 같습니다. 이유를 모르겠다.