【发布时间】:2016-03-13 12:02:24
【问题描述】:
我使用 Zxing 扫描二维码和https://github.com/pedant/sweet-alert-dialog 用于一些漂亮的对话框。当我启动应用程序和每次进行扫描时,我都会检查我是否有互联网连接。我的问题是扫描仪在第一次扫描后停止,它显示对话框弹出,我按确定按钮并停止扫描过程,但相机仍在显示。我的代码或逻辑有什么错误吗???
handleResult中没有第二次进入
public class MainActivity extends Activity implements ZXingScannerView.ResultHandler {
private SweetAlertDialog pDialog;
private ZXingScannerView mScannerView;
@Override
public void onCreate(Bundle state) {
super.onCreate(state);
mScannerView = new ZXingScannerView(this); // Programmatically initialize the scanner view
setContentView(mScannerView); // Set the scanner view as the content view
pDialog = new SweetAlertDialog(this, SweetAlertDialog.SUCCESS_TYPE);
if (!Utils.isNetworkAvailable(MainActivity.this)) {
alertBadNetworkConnection("Network connection error", "Please check your internet connection");
}
}
private void alertBadNetworkConnection(String title, String context) {
pDialog.changeAlertType(SweetAlertDialog.ERROR_TYPE);
pDialog.setTitleText(title)
.setContentText(context)
.setConfirmText("OK")
.setConfirmClickListener(new SweetAlertDialog.OnSweetClickListener() {
@Override
public void onClick(SweetAlertDialog sweetAlertDialog) {
pDialog.dismiss();
mScannerView.startCamera();
}
})
.show()
;
}
private void alertSuccess(String title, String context) {
pDialog.changeAlertType(SweetAlertDialog.SUCCESS_TYPE);
pDialog.setTitleText(title)
.setContentText(context)
.setConfirmText("OK")
.setConfirmClickListener(new SweetAlertDialog.OnSweetClickListener() {
@Override
public void onClick(SweetAlertDialog sweetAlertDialog) {
pDialog.dismiss();
mScannerView.startCamera();
}
})
.show();
}
@Override
public void onResume() {
super.onResume();
mScannerView.setResultHandler(this); // Register ourselves as a handler for scan results.
mScannerView.startCamera(); // Start camera on resume
}
@Override
public void onPause() {
super.onPause();
mScannerView.stopCamera(); // Stop camera on pause
}
@Override
public void handleResult(Result result) {
if (!Utils.isNetworkAvailable(MainActivity.this)) {
alertBadNetworkConnection("Network connection error", "Please check your internet connection");
} else {
alertSuccess("Good job!", result.getText());
}
}
}
这是检查互联网连接的方法
public static boolean isNetworkAvailable(Context context) {
ConnectivityManager connectivityManager
= (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}
【问题讨论】:
-
你有什么解决办法
标签: java android android-camera android-alertdialog zxing