我是Android开发的新手,我正在尝试将zxing用于我的谷歌眼镜应用程序,并且它成功扫描。然而,当我点击玻璃结果时,没有任何反应。但是,当我向下滑动时,活动正在关闭并执行onActivityResult中RESULT_CANCEL选项中的代码。这就是为什么我很困惑。
我是否将结果恢复到我的活动中?我经常研究,尝试了不同的解决方案,但没有任何效果。
这是我的代码:
主要活动
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
scan();
setContentView(R.layout.activity_main);
}
private void scan(){
Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
startActivityForResult(intent, 0);
}
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
if (resultCode == RESULT_OK) {
String contents = intent.getStringExtra("SCAN_RESULT");
String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
Toast.makeText(getApplicationContext(), contents + format, Toast.LENGTH_LONG).show();
// Handle successful scan
} else if (resultCode == RESULT_CANCELED) {
// Handle cancel
Log.i("App","Scan unsuccessful");
}
}
清单:
<activity
android:name="com.google.zxing.client.android.CaptureActivity"
android:screenOrientation="landscape"
android:configChanges="orientation|keyboardHidden"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:windowSoftInputMode="stateAlwaysHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
<intent-filter>
<action android:name="com.google.zxing.client.android.SCAN"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
我错过了什么?任何帮助都会得到很多帮助。
答案 0 :(得分:0)
如果扫描成功,您不需要向下滑动以返回到您的活动:zxing活动应该自行完成并将结果返回给您的应用。向下滑动时,zxing将返回RESULT_CANCELED。
所以,你的问题是为什么zxing没有完成它的活动并返回结果。
请参阅this question,由zxing开发人员之一回答。他建议你使用IntentIntegrator
。另外,this answer显示了如何执行此操作。