Android 添加系统串口服务步骤
来源:互联网 发布:人工智能 sci期刊 编辑:程序博客网 时间:2024/06/06 11:49
系统服务实际上是调用了远程Bind对象进行操作
1:添加aidl文件到 framworks/base/core/java/android/hardware/ISerialManager.aidl//这个文件是需要自己现实的
2:编译脚本中添加申明
frameworks/base/Android.mk: core/java/android/hardware/ISerialManager.aidl \
3:Context文件中添加变量
frameworks/base/core/java/android/content/Context.java: public static final String SERIAL_SERVICE = "serial";
4:添加调用远程服务的文件
frameworks/base/services/java/com/android/server/ SerialService.java//这个文件是需要自己现实的
到frameworks/base/services/java/com/android/server/SystemServer.java:
例如:public class SerialService extends ISerialManager.Stub文件
try {
Slog.i(TAG, "Serial Service");
// Serial port support
serial = new SerialService(context);
ServiceManager.addService(Context.SERIAL_SERVICE, serial);
} catch (Throwable e) {
Slog.e(TAG, "Failure starting SerialService", e);
}
}
5:添加注册服务到 frameworks/base/core/java/android/app/ContextImpl.java: 获取SerialManager
import android.hardware.SerialManager;
import android.hardware.ISerialManager;//这两个文件是需要自己现实的
构造方法中传入两个参数 public SerialManager(Context context, ISerialManager service) {
mContext = context;
mService = service;
}
registerService(SERIAL_SERVICE, new ServiceFetcher() {
public Object createService(ContextImpl ctx) {
IBinder b = ServiceManager.getService(SERIAL_SERVICE);
return new SerialManager(ctx, ISerialManager.Stub.asInterface(b));
}});
接下来就可以通过(SerialManager)getSystemService(Context.SERIAL_SERVICE);来获取SerialManager
- Android 添加系统串口服务步骤
- Android 添加系统串口服务步骤
- Android 添加系统服务
- Android 添加系统服务
- Android 添加系统服务
- Android 添加系统服务
- Android 添加系统服务
- Android 添加系统服务
- android添加系统服务
- Android 添加系统服务
- Android 添加系统服务
- Android 添加系统服务
- Android 添加系统服务
- android 添加系统服务
- android添加系统服务
- android 添加系统服务
- 为Android系统添加服务
- android framework添加系统服务
- How dvm calls native method
- 工作中经常使用的JAVA集合类
- 字符串处理类StringUtils
- SDK 升级缓慢
- AS3.0 正则表达式规则
- Android 添加系统串口服务步骤
- Effective C++读书笔记 第七部分 模板与泛型编程
- jfreechart在Linux上不能显示中文
- poj 3683 Priest John's Busiest Day 2-sat
- C#成长史(增、删、查、改)
- linux下jfreechart生成图片异常(java.lang.NoClassDefFoundError sun.awt.X11GraphicsEnvironment)
- 配置squid代理http和rsync
- 手工操作完成EXCEL表中客户手机号的划分
- hdu3861