设置 系统软件

引用:http://wiseideal.iteye.com/blog/1194509

论坛摘抄的部分 来自http://topic.csdn.net/u/20100819/14/116a4c2d-c00d-45e9-8e06-b63ed16d0f02.html 

引用

此问题今天已找到解决办法,其实前段时间应该也是找到了,但因为资源的问题引起应用崩溃未找到原因一直以为是访问email数据库造成的原因,现在资源问题解决了利用以前的办法确实可以访问到了。 

导致错误的原因如下: 
因为Android本身自带的email应用的保护级别很高,是android:protectionLevel="signatureOrSystem",从android sdk自带文档了解到此种权限保护级别需要system本身镜像应用或者是同system镜像具有相同的签名应用才可以访问,因此一般的第三方应用即使添加了permission也还是会报错的。 

解决方法:(生成system.img) 
1 将自己的应用方到android源代码的packages/apps/目录下,添加Android.mk文件 
2 在应用程序的AndroidManifest.xml中的manifest节点中加入android:sharedUserId="android.uid.system"这个属性。 
3 修改Android.mk文件,加入LOCAL_CERTIFICATE := platform这一行 
4 使用mm命令来编译,生成的apk就有同system一样的权限了。 
5 在android根目录下用make snod重新生成system.img 
6 启动emulator运行下应用看看是否好了。 
由于我这里的email数据库没有任何信息,我只好打出来columns来看,和我期望读取的一样。 

网上还有另外一种方法,但我用signapk报错了所以也就不介绍了,等解决好了再继续介绍。 
困扰了好久的问题终于解决了希望能对大家都有帮助。 
上一篇:德讯推出企业API发布平台


下一篇:Effective C++ 读书笔记之Part2.Constructors, Destructors, and Assignment Operators