2011-10-05 12 views
1

デバイスポリシーマネージャを使用しようとしていますが、有効にしようとするとスタックされます。多くのことをGoogleで検索し、すでにそのエラーについての積極的な取得:デバイスポリシー管理者がデバイスポリシーを取得できません

10-05 10:39:07.147: WARN/DeviceAdminAdd(144): Unable to retrieve device policy ComponentInfo{test.devadmin/test.devadmin.DeviceAdmin$MyDeviceAdminReceiver} 
    10-05 10:39:07.147: WARN/DeviceAdminAdd(144): android.content.pm.PackageManager$NameNotFoundException: ComponentInfo{test.devadmin/test.devadmin.DeviceAdmin$MyDeviceAdminReceiver} 

マニフェスト:

public void enable() { 
    if (!mDPM.isAdminActive(mDeviceAdmin)) { 
     Intent intent = new Intent(
       DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN); 
     intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, 
       mDeviceAdmin); 
     intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, 
       "Additional text explaining why this needs to be added."); 
     startActivityForResult(intent, REQUEST_ENABLE); 
    } else { 
     mDPM.lockNow(); 
    } 

レシーバクラスがbasiclyあるメソッドを有効にする

<application android:icon="@drawable/icon" android:label="@string/app_name"> 
     <activity android:name=".DeviceAdmin" android:label="@string/app_name"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity>  
<activity android:name=".app.DeviceAdmin$Controller" 
    android:label="@string/activity_sample_device_admin"> 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.SAMPLE_CODE" /> 
    </intent-filter> 
</activity> 
<receiver android:name="MyDeviceAdminReceiver" 
     android:label="@string/app_label" 
     android:permission="android.permission.BIND_DEVICE_ADMIN"> 
    <meta-data android:name="android.app.device_admin" 
      android:resource="@xml/device_admin" /> 
     <intent-filter> 
      <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" /> 
     </intent-filter> 
    </receiver> 
</application> 
</manifest> 

device_admin.xml

<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> 

を名詞と同じここでD:http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/DeviceAdminSample.html

http://rootfs.wordpress.com/2010/09/09/android-make-your-application-a-device-administrator/

任意のヘルプやアドバイスをいただければ幸いです!

答えて

3

<receiver android:name="MyDeviceAdminReceiver"

あなたの受信機の名前を確認してください、私はあなたが受信機名の前に.を追加し忘れ思う:

<receiver android:name=".MyDeviceAdminReceiver" 
+0

受信者名は受信者である必要があります。android:name = "。MyDeviceAdminReceiver" – SudP

+0

@ user980188:Sudhir28は正しいです。あなたはそれを試しましたか? –

+0

ありがとうございました。私は Ton

3

私はあなたがあなたのDeviceAdminのjavaファイルを再確認した場合、あなたが拡張しようとしている受信機の名前があると思いますandroid manifest.xmlファイルで指定しているものとは異なります。