aidl通信的问题记录

来源:互联网 发布:linux命令手册 pdf 编辑:程序博客网 时间:2024/06/06 09:42

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

0 0