1. 在src下新建一个包:com.android.internal.telephony(和ITelephony.aidl 中 package 声明的包名一样);
2. 然后把从系统源码中把ITelephony.aidl文件拷贝到 com.android.internal.telephony包下。(也可以先新建一个ITelephony.aidl, 然后再把内容拷贝进去(ITelephony.aidl文件内容可以在 http://www.netmite.com/android/mydroid/1.5/frameworks/base/telephony/java/com/android/internal/telephony/ITelephony.aidl,这个方法适合么有SDK源码文件的开发者));
3. 在src下新建一个包:android.telephony, 然后新建一个NeighboringCellInfo.aidl,其内容为:
package android.telephony;

parcelable NeighboringCellInfo;

4.从私有方法中获取ITelephony: 代码如下。

tManager = (TelephonyManager) 
this.getSystemService(Context.TELEPHONY_SERVICE);
//初始化iTelephony
Class c = TelephonyManager.class;
Method getITelephonyMethod = null;
try {
getITelephonyMethod = c.getDeclaredMethod("getITelephony", (Class[])null);
getITelephonyMethod.setAccessible(true);
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

try {
iTelephony = (ITelephony) getITelephonyMethod.invoke(tManager, (Object[])null);
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

(其实android sdk里面的文档是很有帮助的, aidl建立方法不清楚的可以看 里面的文档, )

更多相关文章

  1. Android(安卓)JNI使用(Android(安卓)Studio)
  2. Android(安卓)字体大小怎么自适应不同分辨率
  3. Android弹出框的学习
  4. android 混淆 gson
  5. 使用apktool工具遇到could not decode arsc file的解决办法
  6. HAL层,.sensors.h 头文件分析
  7. framework
  8. Android(安卓)touch 事件的处理流程
  9. vue中判断是iOS,安卓,以及微信的方法

随机推荐

  1. 什么是android
  2. Android群英传学习——第六章、Android绘
  3. android:ellipsize="end" + android:maxL
  4. Android软件工程师之不归路
  5. Android(安卓)M 新的运行时权限开发者需
  6. Android主流三方库源码分析(六、深入理解L
  7. 快速的APK制作简易免费的Android应用软件
  8. android 屏幕分辨率问题
  9. 2020上半年百度Android岗(初级到高级)面试
  10. 相逼分手为哪般?只因你赚钱太少