2010-12-28 53 views
22

Tôi đã cố gắng khóa thiết bị thông qua chương trình. Nhưng tôi không thể tìm ra giải pháp. Tôi muốn khóa android froyo2.2 thông qua chương trình. Tôi đã thử keyguardmanager và DeviceAdminManager.Khóa thiết bị Android theo lập trình

Ứng dụng của tôi là khóa từ xa thiết bị. Khi nhận được tin nhắn với một số từ mã để khóa sau đó nó khóa điện thoại. Tôi đã tìm thấy nhiều chương trình Api_demo như là giải pháp nhưng tôi không thể giải nén mã khóa một mình từ đó và tìm giải pháp.

+0

một số cách tôi đã nhận được ... – adithi

+4

sau đó cung cấp câu trả lời cho mình và chấp nhận nó – pufferfish

Trả lời

15

Lớp hoạt động nên lớp bên trong và lớp outter nên mở rộng 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); 
     } 
    } 
} 

Để khóa điện thoại viết mã trong trường hợp nơi bạn sử dụng để khóa

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

Nếu DeviceAdmin là đã bật rồi điện thoại sẽ bị khóa. Để bật quản trị viên thiết bị, ý định DevicePolicyManager được gọi và người dùng phải bật nó.

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

adithi waht là securemeAdmin và hoạt động? I có cùng một vấn đề. u có thể giải thích – arpit

+3

bất cứ ai có thể vui lòng nói những gì đang hoạt động và những gì là secureadmin ở đây? – Reyjohn

+0

Mã trên được lấy từ DeviceAdminSample hiện diện trong các mẫu sdk Android có sẵn với Android SDK. APIDemos -> ứng dụng – Sundeep

3

Để giải quyết nhiệm vụ này bạn có thể có một cái nhìn để NoKeyGuard source code và chính xác hơn về một lớp NoKeyGuard dịch vụ và lớp KeyguardLockWrapper.

Để mở khóa thiết bị viết mã trong trường hợp nơi bạn sử dụng để mở khóa:

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

Điều này bây giờ đã lỗi thời. Không được dùng! – Hawk

1

Hoạt động lớp nên là lớp bên trong và lớp ngoài nên mở rộng 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

Điều này được sử dụng để làm việc, nói trong Android 2.3, nhưng không hoạt động nữa. – DagW

Các vấn đề liên quan