packagecom.example.rfidlibrary;importandroid.content.ComponentName;importandroid.content.Context;importandroid.content.Intent;importandroid.content.ServiceConnection;importandroid.os.IBinder;importandroid.os.RemoteException;importandroid.util.Log;importcom.example.rfid_sdk_as.AIDLRFIDData;importcom.example.rfid_sdk_as.AIDLTagData;importcom.example.rfid_sdk_as.BarCodeData;importcom.example.rfid_sdk_as.IAPPServiceRemoteBinder;importcom.example.rfid_sdk_as.InitDeviceCallback;importjava.util.List;public classRFIDReaderManager {private static final String TAG = "RFIDReaderManager";private static final String PACKAGE = "com.example.rfid_sdk_as";private static final String BIND_ACTION = "com.example.rfid_sdk_as.APPService";privateIAPPServiceRemoteBinder binderService;private staticContext mContext;private staticRFIDReaderManager mManager;privateRFIDReaderServiceConnectListen mListener;public staticRFIDReaderManager instance(Context context) {

Log.i(TAG,"------------------instance-----------------");

mContext=context;if (mManager != null) {returnmManager;

}else{

mManager= newRFIDReaderManager();

}returnmManager;

}public voidserviceConnectListen(RFIDReaderServiceConnectListen listener) {

Log.i(TAG,"---------------------ServiceConnect");

mListener=listener;

Intent it= newIntent();

it.setAction(BIND_ACTION);

it.setPackage(PACKAGE);//it.setComponent(new ComponentName(PACKAGE, BIND_ACTION));

mContext.bindService(it, mserviceConnection, mContext.BIND_AUTO_CREATE);

}public voidunbind(){

Log.i(TAG,"---------------------unbind");if(mserviceConnection!=null){

mContext.unbindService(mserviceConnection);

}

binderService= null;

mListener.disConnect();

}

ServiceConnection mserviceConnection= newServiceConnection() {

@Overridepublic voidonServiceDisconnected(ComponentName name) {

unbind();

}

@Overridepublic voidonServiceConnected(ComponentName name, IBinder service) {

Log.i(TAG,"---------------------onServiceConnected");

binderService=IAPPServiceRemoteBinder.Stub.asInterface(service);

mListener.connected();

}

};public interfaceRFIDReaderServiceConnectListen{public voidconnected();public voiddisConnect();

}

}

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐