1. aidl的使用省略
2. 在两个android project的包中写好aidl文后,按照要求保证了aidl的内容完全一致,但由于各自在不同的包中,所以aidl文件声明的包不一致。如果aidl文件声明的包与实际所在包不一致,会报错。实验结果是通信不成功,因为需要aidl文件完全一致,包括包声明字段,即第一行package 声明也不能改变。所以,我们需要在连个工程中建立两个相同的包,并且放入同一个aidl文件。
3. 通信成功了,但发现服务进程的Manifest文件有警告“Exported service does not require permission”。大致是说这个服务能被外部调用,不安全。我们本来就是要被外部调用的,但有警告了就要解决。网上有连个方案:
①增加android:exported="false"这样就不能被外部调用了。则个不适合aidl服务。
②是增加权限限制。完全不懂,折腾了半天。
4. 简单说明下用权限限制解决,太深的也不懂:
①在服务程序的Manifest文件的manifest标签下用<permission>标签注册一个权限A;
②在service中用android:permission属性说明,使用这个服务需要声明。即在客户端程序(调用服务的app)中要获取该权限。
③在客户端程序的Manifest文件中使用<uses-permission>标签获取该权限。
④在这三步不中,每个标签所对应的字符串需要一致,也许我哪里写错了,事了几次都错了。
实验用的代码: http://download.csdn.net/detail/l_xzm/8154081