2012-02-10 2 views
0

Device Policy Manager를 사용하여 Android를 사용하여 화면을 잠글 수 있습니다. 사용자가 다른 응용 프로그램에있는 경우에도 화면이 잠 깁니다 (Globaly). 내가 잠금 해제와 함께하고 싶은 것과 똑같은 일. 내 애플리케이션은 사용자가 애플리케이션 내 화면을 잠글 때 화면 잠금을 해제합니다. 그러나 사용자가 다른 응용 프로그램과 화면을 잠그면 화면 잠금이 해제되지 않습니다.안드로이드에서 화면을 잠금 해제 할 수 없습니다.

화면 잠금/잠금 해제에 근접 센서를 사용하고 잠금 해제를 위해 onPause 메소드에 ProximitySensorEventListener를 등록하고 있습니다. 그것은 내 애플 리케이션 내에서만 화면 잠금을 해제합니다. 화면을 수행하는 방법은 다른 응용 프로그램 (Globaly)과 화면 잠금을 해제해야 ?? plz이 문제에 대한 도와주세요.

미리 감사드립니다.

+1

서비스에이 수신기를 등록하려고 시도 했습니까? – Huang

답변

2

예 포 그라운드 응용 프로그램과 독립적으로 사용하기 위해 근접 센서 입력과 함께 백그라운드에서 실행되는 서비스를 구현해야합니다. 코드를 다음 인해 꽉 메모리 부족에 배경

public class PocketService extends Service implements SensorEventListener { 

@Override 
public IBinder onBind(Intent intent) { 
    // TODO Auto-generated method stub 
    return null; 
} 

@Override 
public void onCreate() { 
    Toast.makeText(this, "My Service Created", Toast.LENGTH_SHORT).show(); 
    Log.d("TAG", "onCreate"); 

    mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); 
    mProximity = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY); 

    mSensorManager.registerListener(this, mProximity, 
      SensorManager.SENSOR_DELAY_NORMAL); 
} 

@Override 
public void onDestroy() { 
    Toast.makeText(this, "My Service Stopped", Toast.LENGTH_SHORT).show(); 
    Log.d("TAG", "onDestroy"); 
    mSensorManager.unregisterListener(this); 
} 

@Override 
public int onStartCommand(Intent intent, int flags, int startid) { 
    Toast.makeText(this, "My Service Started", Toast.LENGTH_SHORT).show(); 
    Log.d("TAG", "onStart"); 
    return START_STICKY; 
} 

public void onSensorChanged(SensorEvent event) { 
    Sensor sensor = event.sensor; 
    if (sensor.getType() == Sensor.TYPE_PROXIMITY) { 
     distance = event.values[0]; 
     if (distance < 1) { 
       enableScreenLock(); 
     } else { 
       disableScreenLock(); 
     } 
     } 

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

} 
} 

당신은 활동에서이 작업을 시작해야하고 작업 관리자를 죽이기까지 그것은 당신의 백그라운드에서 실행에서 실행되는 서비스를 보여줍니다. 그러나 onStartCommand() 메서드가 START_STICKY를 반환하기 때문에 메모리를 사용할 수있는 동안 인스턴스를 다시 만들려고합니다.

관련 문제