Here are the examples of the java api com.iobridges.com.DeviceChecker taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.
1 Examples
16
Source : AbstractDeviceModel.java
with GNU General Public License v3.0
from RfidResearchGroup
with GNU General Public License v3.0
from RfidResearchGroup
/**
* 抽象的设备数据层对象,定义了一系列设备操作的字段与动作!
*
* @author DXL
*/
public abstract clreplaced AbstractDeviceModel<D, A> implements Serializable {
protected final String TAG = this.getClreplaced().getSimpleName();
// 设备初始化类
protected DeviceChecker mDeviceChecker;
// 驱动的实现,此实例必须被初始化!
protected DriverInterface<D, A> mDI;
// 是否是连接成功的!
private boolean isConnected = false;
// 设备广播回调实现,此变量必须被初始设置!
protected DevCallback<D> devCallbackImpl;
// 缓存当前的发现的设备列表,应当所有的底层都共享这个列表!
protected static final List<DevBean> devAttachList = new ArrayList<>();
// 缓存一个设备回调!
protected static final List<DevCallback<DevBean>> callbacks = new ArrayList<>();
public AbstractDeviceModel() {
init();
}
private void init() {
// 初始化资源!
if (mDI == null)
mDI = getDriverInterface();
if (mDeviceChecker == null)
mDeviceChecker = getDeviceInitImpl();
if (devCallbackImpl == null)
devCallbackImpl = getDevCallback();
}
// 分发到注册的回调中!
public void attachDispatcher(DevBean devBean) {
if (devBean != null) {
for (DevCallback<DevBean> callback : callbacks) {
if (callback != null) {
callback.onAttach(devBean);
}
}
}
}
public void detachDispatcher(DevBean devBean) {
if (devBean != null) {
for (DevCallback<DevBean> callback : callbacks) {
if (callback != null) {
callback.onDetach(devBean);
}
}
}
}
// 添加到列表中!
public void addDev2List(DevBean devBean) {
boolean isExists = false;
for (DevBean devs : devAttachList) {
if (Commons.equalDebBean(devBean, devs)) {
// 已经存在在列表中
isExists = true;
}
}
if (isExists) {
detachDispatcher(devBean);
}
devAttachList.add(devBean);
}
// 设置当需要被设备更新时的通知!
public void addCallback(DevCallback<DevBean> c) {
if (c != null) {
// 如果回调不为空,我们就进行回调处理!
callbacks.add(c);
// 设置回调的时候可能需要将历史缓存的数据进行更新!
for (DevBean devBean : devAttachList) {
// 可能在没有设置视图的时候静默状态下也有设备插入了!
c.onAttach(devBean);
}
}
}
// 移除回调!
public void removeCallback(DevCallback<DevBean> c) {
// 从回调列表中移除该回调!
callbacks.remove(c);
}
// 注册需要的广播事件
public void register() {
init();
// 注册驱动!
if (mDI != null) {
// 直接注册!
mDI.register(devCallbackImpl);
} else {
Log.d(TAG, "驱动为空,可能是因为没有加载该驱动!");
}
}
// 解注册广播事件!
public void unregister() {
// 直接解注册!
if (mDI != null)
mDI.unregister();
}
// 设置当前驱动的链接状态!
public void setConnected(boolean connected) {
isConnected = connected;
}
// 得到当前的链接状态!
public boolean isConnected() {
return isConnected;
}
// 必须初始化的设备驱动!
public abstract DriverInterface<D, A> getDriverInterface();
// 必须初始化的设备初始化类!
public abstract DeviceChecker getDeviceInitImpl();
// 必须初始化的设备扫描相关的实现!
public abstract DevCallback<D> getDevCallback();
// 寻找设备,由于每个设备的寻找实现都不同,此处直接定义为抽象即可!
public abstract void discovery(Context context);
// 获得已存在的设备列表,同上!
public abstract DevBean[] getHistory();
// 连接一个设备,不再繁杂的判断,直接使用子类的实现!
public abstract void connect(String address, ConnectCallback callback);
// 断开与设备的连接,由于某些设备的停止不能单停止驱动层,因此这里也作为抽象动作!
public abstract void disconnect();
// 在连接设备完成后初始化NFC设备!
public void init(InitNfcCallback callback) {
Log.d(TAG, "调用了初始化!");
// TODO 最终是在这里实现的NFC设备的通信初始化和设备唤醒!
if (isConnected) {
Log.d(TAG, "该驱动已经链接初始化成功,将使用该驱动进行初始化设备: " + mDI.getClreplaced().getName());
new Thread(new Runnable() {
@Override
public void run() {
// 直接连接,有需要时可重写!
try {
if (mDeviceChecker.check()) {
callback.onInitSuccess();
} else {
LogUtils.d("初始化失败,将会调用设备封装类关闭设备!");
// close device!
mDeviceChecker.close();
callback.onInitFail();
mDI.disconect();
}
} catch (IOException e) {
e.printStackTrace();
IOUtils.close(mDeviceChecker);
}
}
}).start();
} else {
Log.d(TAG, "该驱动未链接,将禁用该驱动在接下来的初始化设备任务: " + mDI.getClreplaced().getName());
}
}
}