2013-11-24 2 views
1

이것은 내 코드이며, 복사하여 안드로이드 잠금 해제에 대한 다른 주제에서 붙여 넣습니다. 나는 왜 이것이 작동하지 않는지 모른다! :(android with FLAG_DISMISS_KEYGUARD 잠금 해제

목표는 다음과 같습니다 근접 센서, HI 장치 잠금 해제 자체 때

(더 많은 정보 : Using proximity sensor lock and unlock a home screen).

센서가 잘 작동하지만, 전화가 여전히 :(

잠겨

내가 핀 잠금 등이없는, 내가 넥서스 여기 5.

private SensorManager mSensorManager;  
private Sensor ProxymitySensor ; 
private ToneGenerator tg = new ToneGenerator(AudioManager.STREAM_NOTIFICATION, 100); 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_unlock); 

    mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); 
    ProxymitySensor = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY); 
    mSensorManager.registerListener(this, ProxymitySensor,SensorManager.SENSOR_DELAY_NORMAL); 


} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.unlock, menu); 
    return true; 
} 


    @Override 
    public final void onSensorChanged(SensorEvent event) { 
    Object sensordata = event.values[0]; 
    // Do something with this sensor data. 
    if (event.values[0] == event.sensor.getMaximumRange()){  
        PlaySound(); 
        UnlockMe(); 
    } 
    } 

    private void PlaySound() {   
     tg.startTone(ToneGenerator.TONE_PROP_BEEP); 
    } 

    private void UnlockMe(){ 
     // try to unlock the phone 
     getWindow().addFlags(LayoutParams.FLAG_DISMISS_KEYGUARD); 
     getWindow().addFlags(LayoutParams.FLAG_SHOW_WHEN_LOCKED); 
     getWindow().addFlags(LayoutParams.FLAG_TURN_SCREEN_ON);   
     // nothing happen :( 
    } 



    @Override 
    public void onAccuracyChanged(Sensor arg0, int arg1) { 
    // TODO Auto-generated method stub   
    } 

에 전체 파일을 배포 : http://pastebin.com/CCv2W70Y

내가 그것을 내 손을 넣어 경우 내 폰은 내가 경고음과 anityng 말을하지 않습니다 :( LocgCat 아무것도 더 듣고, 잠겨 ...

어떤 생각?

답변

4

전체 화면 플래그가 누락되었습니다. 구글의 문서에서

:

공공 정적 최종 INT FLAG_SHOW_WHEN_LOCKED

창 플래그 : 특수 플래그는 화면이 잠겨있을 때 윈도우가 표시 될 수 있도록. 이렇게하면 응용 프로그램 창을 키 가드 또는 다른 잠금 화면보다 우선 적용 할 수 있습니다. FLAG_KEEP_SCREEN_ON과 함께 사용하여 키 가드 창을 표시하기 전에 화면을 켜고 창을 직접 표시 할 수 있습니다. FLAG_DISMISS_KEYGUARD와 함께 사용하여 비보안 키 가드를 자동으로 완전히 닫을 수 있습니다. 이 플래그는 최상위 전체 화면 윈도우에만 적용됩니다.

강조 광산.

+0

https://code.google.com/p/android-developer-preview/issues/detail?id=1902 – JacksOnF1re