0

何らかの理由で、1D バーコード スキャンを要求すると、メソッド onActivityResult が呼び出されません。これに対する回避策はありますか? そうでない場合、自分のアプリと統合できる別のバーコード アプリはありますか、それともゼロから作成する必要がありますか?

コード:

btnScan.setOnClickListener(new View.OnClickListener() 
    {   
        @Override
        public void onClick(View arg0) 
        {
            Intent intent = new Intent("com.google.zxing.client.android.SCAN");
            intent.putExtra("com.google.zxing.client.android.SCAN.SCAN_MODE", "PRODUCT_MODE");

            try{
                startActivityForResult(intent, 0);
            }catch(ActivityNotFoundException ex){
                showDownloadDialog();
            }
        }
    });

戻りコード:

    @Override public void onActivityResult(int requestCode, int resultCode, Intent intent){
    if (requestCode == 0)
    {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("Scan");
        builder.setMessage(intent.getStringExtra("SCAN_RESULT"));

        builder.create().show();

        Log.d("SCAN", "sup");
    }

    Log.d("SCAN", "sup sup");
}

前もって感謝します。

編集: 実際には、QR コードでさえ onActivityResult を呼び出していません。TabActivity を使用しています。もしかして、これは何か関係があるのでしょうか?

編集 2: わかりました、ActivityB で startActivity を使用してみました。ActivityB は startActivityForResult(zxing) の呼び出しを担当し、次に onActivityResult でログを出力しました。働いた。ここで、TabActivity の何が問題なのかを知る必要があります。

4

1 に答える 1

0

わかりました、onActivityResult を呼び出すことができました。子アクティビティでは、次を使用しました。

getParent().startActivityForResult(intent, positive_request_code);

次に、親アクティビティ (TabActivity) に onActivityResult を配置します。

于 2012-05-17T19:38:10.420 に答える