写一个安卓扫码之后储存数据到数据库的功能
时间: 2024-05-02 18:18:20 浏览: 174
以下是一个简单的实现方式:
1. 在布局文件中添加一个按钮和一个文本框用于显示扫码结果:
```xml
<Button
android:id="@+id/scan_button"
android:text="Scan"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="scanCode" />
<TextView
android:id="@+id/result_text"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
```
2. 在Activity中添加扫码方法和数据库操作方法:
```java
public class MainActivity extends AppCompatActivity {
private static final int REQUEST_CODE_SCAN = 1;
private SQLiteDatabase db;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 打开或创建数据库
db = openOrCreateDatabase("mydb.db", MODE_PRIVATE, null);
// 创建表格
db.execSQL("CREATE TABLE IF NOT EXISTS codes (id INTEGER PRIMARY KEY AUTOINCREMENT, code TEXT)");
}
// 扫码按钮点击事件
public void scanCode(View view) {
IntentIntegrator integrator = new IntentIntegrator(this);
integrator.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE);
integrator.setPrompt("Scan a QR code");
integrator.setCameraId(0);
integrator.setBeepEnabled(false);
integrator.setBarcodeImageEnabled(true);
integrator.initiateScan();
}
// 扫码结果回调方法
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
if (result != null) {
if (result.getContents() == null) {
Toast.makeText(this, "Cancelled", Toast.LENGTH_LONG).show();
} else {
// 将扫码结果保存到数据库
String code = result.getContents();
ContentValues values = new ContentValues();
values.put("code", code);
db.insert("codes", null, values);
// 显示扫码结果
TextView resultText = findViewById(R.id.result_text);
resultText.setText(code);
}
} else {
super.onActivityResult(requestCode, resultCode, data);
}
}
@Override
protected void onDestroy() {
super.onDestroy();
// 关闭数据库
db.close();
}
}
```
3. 在AndroidManifest.xml中添加相机和网络权限:
```xml
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
```
这样就实现了一个简单的安卓扫码并将结果保存到数据库的功能。需要注意的是,上述代码仅供参考,实际应用中还需要进行错误处理、数据校验等操作。
阅读全文