已经开始使用android studio开发我的第一个“真正的”原始Android应用程序,所以我仍然是非常新的,虽然我有java的经验。我的应用程序涉及使用QR码扫描仪并使用它输出的内容(具体用途将使用比特币地址)。
我在整合QR码扫描仪方面遇到了实际问题,说实话,我真的不在乎是否知道它是使用意图调用还是我在内部使用库,我真的很想以最简单的方式进行操作。我的问题是我真的不明白如何导入软件包,什么不是,我很难找到如何在线进行详细解释。
理想的方法是按下按钮,打开扫描仪,当您扫描完代码后,它将转到另一个活动,您可以在其中查看输出,然后选择您想要用它做什么。
这是我的主要活动,如果你可以用它做任何事情:
package com.JunkerDevBlog.bitcoinaddresssender;
import android.content.Intent;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.os.Build;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment())
.commit();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public void scan(View view) {
Intent intent = new Intent(this, ScanActivity.class);
startActivity(intent);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
/**
* A placeholder fragment containing a simple view.
*/
public static class PlaceholderFragment extends Fragment {
public PlaceholderFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_main, container, false);
return rootView;
}
}
}
我也在使用android studio,非常感谢帮助。
答案 0 :(得分:3)
如果你正确设置了Zxing,只需要下面的代码......
IntentIntegrator.initiateScan(BarcodeActivity.this, R.layout.capture, R.id.viewfinder_view, R.id.preview_view, true); // Call the Scanner Intenet
在这里,您可以从条形码阅读器获得回报
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case IntentIntegrator.REQUEST_CODE:
IntentResult scanResult = IntentIntegrator.parseActivityResult(
requestCode, resultCode, data);
if (scanResult == null) {
return;
}
final String result = scanResult.getContents(); // Your result
if (result != null) {
System.out.print("Your result is: " + result);
}
break;
default:
}
}
LayoutCapture.xml
<?xml version="1.0" encoding="UTF-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent">
<SurfaceView android:id="@+id/preview_view"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:layout_centerInParent="true" />
<jim.h.common.android.zxinglib.view.ViewfinderView
android:id="@+id/viewfinder_view" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:background="#00000000" />
<TextView android:id="@+id/status_view" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_gravity="bottom|center_horizontal"
android:background="#00000000"
android:textColor="#ffffffff" android:textSize="14sp" />
</FrameLayout>
答案 1 :(得分:0)
个人意见,我发现ZXing的整合比较复杂,而是选择集成ZBar库。
你可以从这里得到它: http://sourceforge.net/projects/zbar/files/AndroidSDK/(下载0.2 zip包含lib和示例项目。)
答案 2 :(得分:0)
Ok首先要做的事情!
**实现拉动zxing应用程序的意图不是明智的选择(如果用户没有网络连接且没有zxing应用程序,他不能使用你的应用程序,所以我强烈建议你使用zxing库)截至目前,Android Studio尚未完全准备就绪。它还处于测试阶段。所以使用eclipse和ADT插件
按照本教程设置zxing。在我们参与了涉及zxing的项目之后,我的朋友写了这篇文章。
http://www.androiddevelopersolution.com/2012/06/integrating-zxing-qr-code-scanner-into.html
希望这会有所帮助......