package chaoran.business.adapter; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import chaoran.business.activity.ResultListener; import chaoran.business.strategy.Strategy; public class HkwsAdapter implements Adapter { private Context context; private ResultListener resultListener; private Strategy strategy; public HkwsAdapter(Context context, ResultListener resultListener) { this.context = context; this.resultListener = resultListener; strategy = new Receiver(); } @Override public void start() { strategy.executeStrategy(resultListener); } @Override public void stop() { strategy.exclusiveStrategy(); } public class Receiver extends BroadcastReceiver implements Strategy { @Override public void onReceive(Context context, Intent intent) { resultListener.result(intent.getStringExtra("barcode")); } @Override public void executeStrategy(ResultListener resultListener) { IntentFilter filter = new IntentFilter(); filter.addAction("android.intent.ACTION_SCAN_OUTPUT"); filter.setPriority(2); context.registerReceiver(this, filter); } @Override public void exclusiveStrategy() { context.unregisterReceiver(this); } } }