6ED1056-6XA00-0BA0 西门子LOGO! 电池卡 一级代理商 6ED1056-6XA00-0BA0 西门子LOGO! 电池卡 一级代理商
产品参数:LOGO! 电池卡 实时时钟缓存 长 2 年 从 0BA6 起 信息反馈义务依据 产品 33,REACH 法令: 本产品含有 候选物质名单中的以下物质, 其浓度大于 0.1 质量百分比: 1.2-二溴乙烷,乙烯 乙二醇二甲醚(EGDME) (CAS 110-71-4;EC NO 203-794-9)
为Android扩展一个硬件模块需要做两件事: 1、硬件和内核支持。 2、/system/etc/permissions/下面添加xml配置文件。/framework/base/data/etc/下面有一些已经写好的,可以根据需要直接复制过去。
这样,通过PackageManager的hasSystemFeature或getSystemAvailableFeatures就可以确定系统是否支持哪个模块,然后使用对应API了。 XML配置文件不管有多少,它们的语法是一样的,完全可以把它们放进一个XML文件里面。 每一个XML文件必须要有一个标签<permissions>,至于子标签,可以支持这么几种: group,安装到系统中的所有APK都具备的组ID。 permission,可以*一个权限与几个组ID对应。当一个APK被授予这个权**,它也同时属于这几个组了。 assign-permission,把一个权限赋予一个UID,当进程使用这个UID运行时,就具备了这个权限。 library,为系统添加一些扩展库用的。对应的.jar文件放在/system/framework/目录下。比如Google Map相关的库,可以看看下面的参考文章。 feature,每添加一个硬件,都要增加对应的feature。
对这些XML文件的解析是由/framework/base/services/java/com/android/server/PackageManagerService.java中的readPermissions()负责的。解析时会先解析其它XML文件,后解析platform.xml。 解析结果放入mSystemPermissions,mSharedLibraries,mSettings.mPermissions,mAvailableFeatures等几个集合中供系统查询和权限配置使用。
举两个例子 多点触摸: 硬件和内核支持以后 /system/etc/permission下面几个xml文件,可以看一下/framework/base/data/android.hardware.multitouch.*几个文件,根据支持的功能选择添加。
Google地图的支持 这个不需要硬件的支持,但需要先添加Google Map的库,然后再向/system/etc/permissions/下面添加相应的xml文件。具体过程可以看看下面参考文章。
像重力加速、多点触摸、WIFI等,只要系统支持,就要往/system/etc/permissions/下面添加对应的XML配置文件。因为APK使用这些功能之前很有可能先调用PackageManager.hasSystemFeature查询是否支持这个某个硬件模块。 /framework/base/data/etc/handheld_core_hardware.xml里面包含了一些系统的核心硬件模块配置文件。/framework/base/data/etc/Android.mk中会把这一块儿在编译时复制到/system/etc/permissions/目录下。这部分代码默认是关闭的,需要打开 |