向我的应用添加设备管理员权限时INSTALL_PARSE_FAILED_MANIFEST_MALFORMED

时间:2014-04-13 15:12:45

标签: android

在我的AndroidManifest.xml中添加以下行会产生INSTALL_PARSE_FAILED_MANIFEST_MALFORMED错误: -

<receiver android:name="com.gp.app.antitheft.notifications.AdminManagerActivity"
    android:permission="android.permission.BIND_DEVICE_ADMIN">
    <intent-filter>
        <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
        <action android:name="android.app.action.DEVICE_ADMIN_DISABLED" />
    </intent-filter>
</receiver>

此外,以下数据来自LogCat: -

04-13 20:24:59.243:W / ActivityManager(594):找不到许可内容提供者撤销:file:///data/local/tmp/AntiTheft.apk

04-13 20:24:59.253:D / Finsky(1820):[137] PackageVerificationService.getPackageInfo:无法读取文件中的档案:///data/local/tmp/AntiTheft.apk请求id = 3 < / p>

04-13 20:24:59.253:D / Finsky(1820):[1] PackageVerificationReceiver.onReceive:请求验证,id = 3

04-13 20:24:59.253:W / PackageParser(1820):/ data / local / tmp / AnntiTheft.apk(在二进制XML文件行#67):需要android:value或android:resource属性。

由于我对设备管理api非常陌生,我无法检测出实际问题是什么。请帮忙。在此先感谢。

1 个答案:

答案 0 :(得分:0)

如果不出意外,您需要一个<meta-data>元素,指向XML资源,您可以在其中描述您希望使用的设备管理功能:

<receiver
  android:name="AdminReceiver"
  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>

my sample project中的res/xml/device_admin.xml包含:

<device-admin xmlns:android="http://schemas.android.com/apk/res/android">

    <uses-policies>
        <force-lock/>
    </uses-policies>

</device-admin>

因为此示例项目将根据需要锁定设备。

您可以在the Android developer documentationAndroid development books written by balding authors中详细了解设备管理。 : - )