1、Client
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.card);
RegistMessage(); // 注册广播接收处理,用于接收 IntentService 的结果
......
}
//动态注册receiver
public static final String ACTION_RECV_MSG_ID = xxx.RESULT_MESSAGE";
public static final String SERIVCE_IDCARD = "xxx.FingerModuleService";
private MessageReceiver receiverID ;
public void RegistMessage()
{
IntentFilter filter = new IntentFilter( ACTION_RECV_MSG_ID );
filter.addCategory(Intent.CATEGORY_DEFAULT);
receiverID = new MessageReceiver();
registerReceiver(receiverID, filter);
}
/*
* Message
*/
public final static String MESSAGE_CMD="MSG_readID";
public final static String MESSAGE_PATH="MSG_path";
public final static String MESSAGE_RESULT="MSG_result";
/**调用身份证读取服务
*/
public int CallIDcardService( String inPath )
{
Intent msgIntent = GenIDcardServiceIntent(inPath);
startService(msgIntent);
return 0;
}
/**生成IDcard识别服务intent
* @return
*/
static public Intent GenIDcardServiceIntent( String inPath )
{
Intent msgIntent = new Intent( );
msgIntent.setAction( SERIVCE_IDCARD );
msgIntent.putExtra( MESSAGE_CMD, "readIDCard" );//命令
msgIntent.putExtra( MESSAGE_PATH, inPath );//输入工作路径/sdcard/wltlib
return msgIntent;
}
//广播接收 IDcard服务返回的消息
public class MessageReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent) {
String message = intent.getStringExtra(MESSAGE_RESULT);
Log.d("MessageReceiver", MESSAGE_RESULT+"="+message);
if (message != null && message.length() != 0)
{
}
else
{
printHint("失败!");
}
}
}