日期:2014-05-17  浏览次数:20680 次

java中及其简单的问题!! 马上结贴!!
Java code

    /**
     * Called when the barcode scanner exits
     *
     * @param requestCode        The request code originally supplied to startActivityForResult(),
     *                             allowing you to identify who this result came from.
     * @param resultCode        The integer result code returned by the child activity through its setResult().
     * @param intent            An Intent, which can return result data to the caller (various data can be attached to Intent "extras").
     */
    public void onActivityResult(int requestCode, int resultCode, Intent intent) {
        if (requestCode == REQUEST_CODE) {
            if (resultCode == Activity.RESULT_OK) {
                String contents = intent.getStringExtra("SCAN_RESULT");
                String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
                this.success(new PluginResult(PluginResult.Status.OK, "内容:"+contents+"编码方式?:"+format), this.callback);
            } else {
                this.error(new PluginResult(PluginResult.Status.ERROR), this.callback);
            }
        }
    }



小弟新手 之前是c++程序开发的 现在项目需要 让我看一段java代码 请问这个代码说是外接程序退出时调用,我没有发现这个函数和外接程序有什么关系,外接程序就是一个摄像头程序,扫描一些序列码,然后将结果返回给本程序。 我没有发现在本程序调用外接程序的时候 将本函数传入外接程序,那么这个是怎么被调用的呢?

谢谢!!

------解决方案--------------------
光看这个片段怕是不行的。

外设驱动一般有封装好的JNI和jar包,负责通过USB等方式跟设备进行交互。


在你这段代码中:Intent 就很像是负责操作外设的部分:
String contents = intent.getStringExtra("SCAN_RESULT");
因为你是借助它来得到 SCAN_RESULT (扫描结果)。



------解决方案--------------------
上面这部分代码是android的部分代码,看一下以下这个,你应该会明白
http://wenku.baidu.com/view/de3f694f2b160b4e767fcf66.html

------解决方案--------------------
注释里就写清楚了
Called when the barcode scanner exits

也就是说onActivityResult会在扫描结束后被调用(这些是框架内部封装好的,所以你看不到显式调用)

就好像你用vc写个窗口程序,你可以在onActive事件里添加需要的代码,你不需要知道onActive怎么调用,因为MFC框架帮你完成的,在你的窗口被激活的时候就会自动调用。