इस समस्या के संभावित कारणों में
1) मुझे लगता है कि (के साथ बढ़ाया अपने AndroidManifest.xml में रिसीवर के मेटा डेटा
2) आप नहीं जोड़ा है सही वर्ग के साथ कुछ समस्या है DeviceAdminReceiver) या तो व्यवस्थापक कॉम्पोनेंट या एंड्रॉइड के लिए: रिसीवर का नाम संपत्ति।
इस पर बहुत समय बिताने के बाद मैंने कोड बनाया है। मुख्य गतिविधि
public class LockerTest extends Activity {
protected static final int REQUEST_ENABLE = 0;
DevicePolicyManager devicePolicyManager;
ComponentName adminComponent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button = (Button) findViewById(R.id.btn);
button.setOnClickListener(btnListener);
}
Button.OnClickListener btnListener = new Button.OnClickListener() {
public void onClick(View v) {
adminComponent = new ComponentName(LockerTest.this, Darclass.class);
devicePolicyManager = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
if (!devicePolicyManager.isAdminActive(adminComponent)) {
Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, adminComponent);
startActivityForResult(intent, REQUEST_ENABLE);
} else {
devicePolicyManager.lockNow();
}
}
};
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (REQUEST_ENABLE == requestCode) {
super.onActivityResult(requestCode, resultCode, data);
}
}
}
के लिए
कोड एक नया वर्ग बनाएँ - Darclass - कोड
import android.app.admin.DeviceAdminReceiver;
public class Darclass extends DeviceAdminReceiver{
}
एक फ़ोल्डर 'रेस' में 'xml' बनाएँ। फिर 'xml' फ़ोल्डर में my_admin.xml फ़ाइल बनाएं। My_admin.xml के लिए कोड। </activity>
के बाद इस रिसीवर जोड़ सकते हैं और </application>
<device-admin xmlns:android="http://schemas.android.com/apk/res/android">
<uses-policies>
<limit-password />
<watch-login />
<reset-password />
<force-lock />
<wipe-data />
</uses-policies>
</device-admin>
से पहले नोट अंत में अपने AndroidManifest.xml
को रिसीवर bellow दिया जोड़ने <receiver
android:name=".Darclass"
android:permission="android.permission.BIND_DEVICE_ADMIN" >
<meta-data
android:name="android.app.device_admin"
android:resource="@xml/my_admin" />
<intent-filter>
<action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
</intent-filter>
</receiver>
यह अपने डिवाइस पर काम करना चाहिए।
क्या आपने उत्सुकता से USES_POLICY_FORCE_LOCK का उपयोग किया है, मुझे यकीन है कि आपने अभी पूछा है? मैंने यह भी पढ़ा है कि लॉकनो() मोटोरोला उपकरणों के लिए बग किया गया है लेकिन टेबलेट्स के बारे में नहीं था DroidX के बारे में था। –
हां, मेरे पास अनुमति के लिए अनुमति 'USES_POLICY_FORCE_LOCK' –