分享

Android studio调用第三方aidl

 wusiqi111 2018-11-23

  最近学习android,用了一段时间的eclipseAD,刚把eclipseAD使用顺手.发现谷歌的android studio使用的人越来越多,android studio将成为趋势,就果断换android studio上.

       昨天,跟着老师做,一个电话拦截的功能,需要使用到TelephonyManager,这东西在低版本中可以轻松获取,在高版本中,构造方法已经隐藏.所以只能通过绕一大圈通过反射获取系统的服务,调用底层直接拦截电话.但是底层的关键接口是一个ITelephony.aidl文件和附带的另一个aidl文件.老师三下两下,在eclipseAD中就完成了导入,生成对应的java文件,调用完成功能.但是我在studio中,跟着做相同的步骤,却没有完成功能.

       通过查看博客,才知道.在studio中调用aidl跟eclipseAD是有些不一样的.博客中大多都是说怎么自定义aidl文件,然后自动生成java文件的.关于调用一个别人已经封装好的aidl文件,写得并不多.通过,一番尝试,终于生成了aidl对应的java文件.这里通过截图和文字尽可能详细说明过程.

       第一步.找到需要导入工程的aidl文件.通过文本打开,找到文件中的具体包名

             

       第二步在studio的工程目录下app/src/main/下创建一个aidl文件夹(aidl文件夹是跟java文件夹是同级的,不要创建到java文件夹里面),然后在aidl文件夹下,使用刚才aidl找到的具体包名,创建一个相同名字的包(名字一定要相同,否则不能生产的.这跟eclipseAD一致),最后在把需要导入的aidl文件复制到刚刚创建的包下(怎么复制,这个太简单,就不说了).然后目录结构就基本如下了

      

 
 
 


​---------------------------------------------------------------------------

第三步,经过前两步,主要的步骤已经完成.如果对应的java文件还没有自动生成可以.先清除编译文件,让studio重新编译就会自动生成java文件了(直接rebuild应该也可以).

      

 

Studio自动生成的java文件就会出现在app/build/generated/source/aidl/debug/包名/文件夹下了


搞完这些,在studio中编写代码就会出现自动提示了.


       有博文上说,自定义的aidl在main/aidl下创建无法生成对应的java文件,需要在java文件夹下才能生成.不知道是因为他们使用的是早期的版本还是什么,反正我用的是14年12月的版本,在java文件夹下,我尝试了好几次都是无法自动生成对应的java文件的.

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多