2010-12-28 4 views
22

프로그램을 통해 장치를 잠그려고했습니다. 하지만 아직 해결책을 찾을 수 없습니다. 프로그램을 통해 안드로이드 froyo2.2를 잠급니다. 나는 keyguardmanager와 DeviceAdminManager를 시도했다.안드로이드 장치를 프로그래밍 방식으로 잠급니다.

내 앱은 기기를 원격 잠금합니다. 메시지를 잠글 코드와 함께 수신하면 전화를 잠급니다. 솔루션으로 많은 Api_demo 프로그램을 발견했지만 솔루션 코드에서 잠금 코드 만 추출 할 수는 없습니다.

+0

몇 가지 방법 ... – adithi

+4

다음 직접 응답을 제공하고 – pufferfish

답변

15

활동 클래스는 내부 클래스 및 DeviceAdmin 인 경우

if (active) { 
mDPM.lockNow(); 
} 

을 고정하는 데 사용하는 경우 장치를 잠글 경우에 코드를 작성하기 위해

public class adminActivity extends DeviceAdminReceiver { 

    public static class Controller extends Activity { 

        DevicePolicyManager mDPM; 
      ComponentName mDeviceAdminSample; 

     protected void onCreate(Bundle savedInstanceState) { 
       super.onCreate(savedInstanceState); 

       mDPM = (DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE); 
       mDeviceAdminSample = new ComponentName(Controller.this, 
         adminActivity.class); 
     } 
    } 
} 

DeviceAdminReceiver

을 확장해야 outter는 클래스해야 사용 설정하면 휴대 전화가 잠 깁니다. 장치 관리자를 사용하려면 DevicePolicyManager 인 텐트가 호출되며 사용자가이를 활성화해야합니다. 이 작업 당신이 NoKeyGuard 서비스 클래스와 KeyguardLockWrapper 클래스에보다 정확하게 NoKeyGuard source code에 살펴보고 수를 해결하기 위해

Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN); 
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, mDeviceAdminSample);   
+3

adithi 와트는 securemeAdmin이고 활성 상태입니까? 동일한 문제가 있습니다. u는 – arpit

+3

을 설명 할 수 있습니다. 누구든지 활성화되어 있고 여기에 secureadmin이란 무엇입니까? – Reyjohn

+0

위의 코드는 Android SDK에서 사용할 수있는 Android sdk 샘플에있는 DeviceAdminSample에서 가져온 것입니다. APIDemos -> app – Sundeep

3

.

Context context= getApplicationContext(); 
    KeyguardManager _guard = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE); 
    KeyguardLock _keyguardLock = _guard.newKeyguardLock("KeyguardLockWrapper"); 
    //to disable 
    _keyguardLock.disableKeyguard(); 
    //to enable 
    _keyguardLock.reenableKeyguard(); 
+8

이것은 이제 폐기되었습니다. 사용하지 마세요! – Hawk

1

활동 클래스는 내부 클래스해야하며, 외부 클래스가 DeviceAdminReceiver

public class adminActivity extends DeviceAdminReceiver { 

    public static class Controller extends Activity { 

       DevicePolicyManager mDPM; 
     ComponentName mDeviceAdminSample; 

    protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 

      mDPM = (DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE); 
      mDeviceAdminSample = new ComponentName(Controller.this, 
        adminActivity.class); 
    } 
} 
} 
-3
 WindowManager.LayoutParams lp = getWindow().getAttributes(); 
     lp.screenBrightness = 0; 
     getWindow().setAttributes(lp); 
     getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD); 
를 확장해야합니다 :

은 잠금을 해제하는 데 사용하는 경우 장치가 이벤트에 코드를 작성 잠금을 해제하려면
+0

이것은 Android 2.3에서 작동하는 데 사용되었지만 더 이상 작동하지 않습니다. – DagW