您的位置:首页 > 编程语言 > PHP开发

关于service.setPackage和bindService一直返回false

2017-05-10 14:12 1781 查看
今天在研究AIDL的时候,bindService服务端的service一直返回false,在网上查一直说的什么Context问题,发现跟自己的情况不一样,仔细研究了下,发现一个大坑。

启动service的时候

getApplicationContext().startService(new Intent(getApplicationContext(),BookService.class));


调试发现返回值 componentName



没错,package是 com.example.pang.aidlserviver 而不是我们设想的com.example.pang.aidlserviver.service.ssss,之前一直以为填的是service所在的包名,无语。怀疑package参数指的是service端的package,故而修改service的package为aidlserviver2



除了AndroidManifest文件外还需要修改gradele文件:



之后再运行service端服务发现随之更改:



得出结论package填的是app的package,故而启动时使用正确包名成功返回true

service.setPackage("com.example.pang.aidlserviver");


其他的关于AIDL的详细过程有很多文章都描述的很详细了,这里我就不再举例,不过推荐一篇写的很好的AIDL,分上下篇,下篇地址里面有啦

http://www.open-open.com/lib/view/open1469493649028.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  aidl 调试