• 完成的设备扫描项目的几个关键程序,包括activity之间的转换


    module 的 gradle.build
    最后三行的compile 是关键
    dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:26.1.0'
    implementation 'com.android.support:design:26.1.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.0'
    implementation 'com.android.support:support-vector-drawable:26.1.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

    compile 'com.journeyapps:zxing-android-embedded:2.3.0@aar'
    compile 'com.journeyapps:zxing-android-legacy:2.3.0@aar'
    compile 'com.journeyapps:zxing-android-integration:2.3.0@aar'

    }

    /******************************************/
    inputActivity.java

    package com.strongdady.devicescan;

    import android.app.Activity;
    import android.content.Intent;
    import android.database.sqlite.SQLiteDatabase;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.Toast;
    import android.database.Cursor;

    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.InputStream;

    import static android.os.Environment.getExternalStorageDirectory;

    public class inputActivity extends Activity {

    public static String str=null;
    protected void onCreate(Bundle savedInstanceState) {

    final Button buttonExit,buttonCheck;
    final EditText editText0;


    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_input);

    editText0 = (EditText) findViewById(R.id.sample_edit_text0);

    buttonCheck = (Button) findViewById(R.id.sample_buttonCheck);
    buttonExit= (Button) findViewById(R.id.sample_buttonExit);

    buttonCheck.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View arg0) {

    Intent i=new Intent();
    i.putExtra("device_no", editText0.getText().toString());
    setResult(4,i);
    finish();
    }
    });

    buttonExit.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View arg0) {

    Intent i=new Intent();
    i.putExtra("device_no", editText0.getText().toString());
    setResult(0,i);
    finish();
    }
    });

    }
    }

    /*************MainActivity.java*************/
    package com.strongdady.devicescan;


    import android.os.Process;
    import java.util.Arrays;
    import java.util.List;
    import java.io.File;
    import java.io.InputStream;
    import java.io.FileOutputStream;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.Cursor;
    import com.google.zxing.integration.android.IntentIntegrator;
    import com.google.zxing.integration.android.IntentResult;

    import android.os.Environment;
    import android.widget.Toast;
    import android.content.Intent;
    import android.os.Bundle;
    import android.support.annotation.NonNull;
    import android.support.design.widget.BottomNavigationView;
    import android.support.v7.app.AppCompatActivity;
    import android.view.MenuItem;
    import android.widget.TextView;
    import static android.os.Environment.getExternalStorageDirectory;

    public class MainActivity extends AppCompatActivity {


    private final int BUFFER_SIZE = 400000;
    public static final String DB_NAME = "device.db"; // 保存的数据库文件名称
    public static final String PACKAGE_NAME = "com.strongdady.qrscan";// 应用的包名
    //public static final String DB_PATH = "/data"droid.os.Environment.getDataDirectory().getAbsolutePath()+"/"
    public static final String DB_PATH =getExternalStorageDirectory()+"/data";

    String device_no,device_name, owner, register_date,device_nanm,sqlString;
    SQLiteDatabase db=null;
    Cursor cursor;

    private TextView mTextMessage;

    public void copyDBFile()
    {

    try {
    File myDataPath = new File(DB_PATH+"/device_db");

    if (!myDataPath.exists())
    {
    myDataPath.mkdirs();// 假设没有这个文件夹,则创建
    }

    String dbfile=myDataPath+"/"+DB_NAME;
    if (!(new File(dbfile).exists())) {// 推断数据库文件是否存在,若不存在则运行导入,否则直接打开数据库
    InputStream is =getResources().openRawResource(R.raw.device); // 欲导入的数据库
    FileOutputStream fos = new FileOutputStream(dbfile);
    byte[] buffer = new byte[BUFFER_SIZE];
    int count = 0;
    while ((count = is.read(buffer)) > 0) {
    fos.write(buffer, 0, count);
    }
    fos.close();
    is.close();
    }
    db = SQLiteDatabase.openOrCreateDatabase(dbfile,null);

    } catch (Exception e)
    {
    mTextMessage.append(e.toString());
    }
    }

    public Device findDeviceInfo(String qrCode)
    {
    String device_no=null,device_name=null,device_owner=null,device_registerDate=null;
    Device device1;
    //qrCode.trim()去掉前后空格
    cursor = db.rawQuery("SELECT * FROM device where device_no = '"+qrCode.trim()+"'", null);

    while (cursor.moveToNext()) {
    device_no = qrCode;
    device_name = cursor.getString(cursor.getColumnIndex("owner"));
    device_owner = cursor.getString(cursor.getColumnIndex("device_name"));
    device_registerDate = cursor.getString(cursor.getColumnIndex("register_date"));
    register_date=cursor.getString(cursor.getColumnIndex("register_date"));
    }
    if( device_name!=null){
    device1 = new Device();

    device1.Name = device_name;
    device1.no = device_no;
    device1.Owner = device_owner;
    device1.RegisterDate = register_date;

    return device1;
    }else{
    return null;
    }


    }

    private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
    = new BottomNavigationView.OnNavigationItemSelectedListener() {


    @Override
    public boolean onNavigationItemSelected(@NonNull MenuItem item) {

    switch (item.getItemId()) {

    case R.id.navigation_home:
    //mTextMessage.setText(R.string.title_home);
    mTextMessage.setText("");

    IntentIntegrator integrator=new IntentIntegrator(MainActivity.this);

    List<String> oDesiredFormats = Arrays.asList("PDF_417,UPC_A,UPC_E,EAN_13,EAN_8,RSS_14,RSS_EXPANDED,CODE_39,CODE_93,CODE_128,ITF,CODABAR,QR_CODE,DATA_MATRIX".split(","));

    //integrator.setOrientation()
    //integrator.setBeepEnabled(true);
    //integrator.setOrientation(0);
    //integrator.setPrompt("scaning .....");

    integrator.initiateScan(oDesiredFormats);

    return true;

    case R.id.navigation_dashboard:
    mTextMessage.setText(R.string.title_dashboard);


    startActivityForResult(new Intent(MainActivity.this,
    inputActivity.class), 1);



    return true;

    case R.id.navigation_notifications:

    cursor.close();
    db.close();
    finish();
    System.exit(0);
    Process.killProcess(Process.myPid());
    }
    return false;
    }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mTextMessage = (TextView) findViewById(R.id.message);
    BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation);
    navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);

    copyDBFile();

    }

    protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    IntentResult scanResult=null;

    super.onActivityResult(requestCode, resultCode, data);

    String qrCode = null;

    try {
    scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
    }catch (Exception e){
    mTextMessage.append(" Exception occured during scaning :"+e+" ");
    }

    if (requestCode == 1 && resultCode == 0) {
    return;
    }

    if (requestCode == 1 && resultCode == 4) {
    String s = data.getStringExtra("device_no");
    qrCode = s;

    Device device1 = findDeviceInfo(qrCode);
    if (device1 != null) {
    mTextMessage.setText(" 设备编号: " + device1.no + " 设备名称:" + device1.Name + " 责任人:" + device1.Owner + " " + " 登记日期:" + device1.RegisterDate);
    } else {
    mTextMessage.setText(" 找不到编号为:" + qrCode + "的设备");
    }
    } else {

    qrCode=scanResult.getContents().toString();


    if (scanResult != null) {
    Device device1 = findDeviceInfo(qrCode);
    if (device1 != null) {
    mTextMessage.setText(" 设备编号: " + device1.no + " 设备名称:" + device1.Name + " 责任人:" + device1.Owner + " " + " 登记日期:" + device1.RegisterDate);
    } else {
    mTextMessage.setText(" !!!: 找不到编号为:" + qrCode + "的设备");
    }
    } else {
    //super.onActivityResult(requestCode, resultCode, data);
    //mTextMessage.setText(" 找不到编号为:"+qrCode+"的设备");
    mTextMessage.setText(" 找不到编号为:" + qrCode + "的设备");
    }

    }
    }
    }

    /*********************/
    Device.java
    package com.strongdady.devicescan;

    public class Device {
    public String no, Owner,Name,RegisterDate;

    }
  • 相关阅读:
    easyui-filebox上传图片到阿里
    easyUI-filebox图片上传和预览
    抓网页__第3方库选择_01
    HttpClient示例01
    JSON01_资料
    指定library路径
    Jni_Linux_01_转
    JNI简单步骤01
    JDK_环境变量
    Redis_01
  • 原文地址:https://www.cnblogs.com/strongdady/p/9086258.html
Copyright © 2020-2023  润新知