日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

進階指南

窗口掃碼表示在舊的標準 UI 下使用掃碼功能。若需使用支持多碼識別的全屏掃碼功能,請將 mPaaS 基線版本升級至 10.1.68.33 及以上。

下圖是掃一掃支持的三種 UI 掃碼樣式。掃一掃進階指南

標準 UI 下使用掃一掃

全屏掃碼

如需連續(xù)掃碼,即掃碼識別成功后不退出繼續(xù)識別,可根據(jù)如下代碼來實現(xiàn)。

ScanRequest scanRequest = new ScanRequest();
        MPScan.startMPaasScanFullScreenActivity(this, scanRequest, new MPScanCallbackAdapter() {
            @Override
            public boolean onScanFinish(Context context, MPScanResult mpScanResult, final MPScanStarter mpScanStarter) {
                new android.app.AlertDialog.Builder(context)
                        .setMessage(mpScanResult != null ? mpScanResult.getText() : "沒有識別到碼")
                        .setPositiveButton(R.string.confirm, new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                mpScanStarter.restart();
                            }
                        })
                        .create()
                        .show();
                // 返回 false 表示該回調(diào)未消費,下次識別繼續(xù)回調(diào)
                return false;
            }
        });

重寫 MPScanCallbackAdapter 的其他方法來監(jiān)聽其他事件:

MPScan.startMPaasScanFullScreenActivity(this, scanRequest, new MPScanCallbackAdapter() {
    @Override
    public boolean onScanFinish(final Context context, MPScanResult mpScanResult, final MPScanStarter mpScanStarter) {
        return true;
    }

    @Override
    public boolean onScanError(Context context, MPScanError error) {
        // 識別錯誤
        return super.onScanError(context, error);
    }

    @Override
    public boolean onScanCancel(Context context) {
        // 識別取消
        return super.onScanCancel(context);
    }
});

在啟動全屏掃碼功能前,可根據(jù)如下代碼設置啟動參數(shù)。

ScanRequest scanRequest = new ScanRequest();

// 設置提示文字
scanRequest.setViewText("提示文字");

// 設置打開手電筒提示文字
scanRequest.setOpenTorchText("打開手電筒");

// 設置關閉手電筒提示文字
scanRequest.setCloseTorchText("關閉手電筒");

// 設置掃碼識別類型
// 該設置僅對直接掃碼生效,對識別相冊圖片無效
scanRequest.setRecognizeType(
    ScanRequest.RecognizeType.QR_CODE,    // 二維碼
    ScanRequest.RecognizeType.BAR_CODE,   // 條形碼
    ScanRequest.RecognizeType.DM_CODE,    // DM 碼
    ScanRequest.RecognizeType.PDF417_Code // PDF417 碼
); // 不設置,則默認識別前三種

// 設置隱藏相冊按鈕
scanRequest.setNotSupportAlbum(true);

// 設置多碼標記圖片
scanRequest.setMultiMaMarker(R.drawable.green_arrow);

// 設置多碼提示文字
scanRequest.setMultiMaTipText("點擊綠色箭頭選擇碼");

// 設置選中單個碼后的圓點顏色
scanRequest.setMaTargetColor("#32CD32");

// 開啟 AI 識別小碼并自動放大,僅 10.2.3 及以上基線支持,需接入掃一掃 AI 組件
scanRequest.setEnableAI(true);

// 設置延時提示文案,僅 10.2.3 及以上基線支持
scanRequest.setDelayTipText("延時x秒彈出toast");

// 設置延時提示時間,單位毫秒,僅 10.2.3 及以上基線支持
scanRequest.setDelayTipTime(5000);

窗口掃碼

使用在窗口掃碼功能時,可根據(jù)如下代碼設置啟動參數(shù)。

ScanRequest scanRequest = new ScanRequest();

// 設置掃碼頁 UI 風格
scanRequest.setScanType(ScanRequest.ScanType.QRCODE);  // 二維碼風格
scanRequest.setScanType(ScanRequest.ScanType.BARCODE); // 條形碼風格,默認

// 設置掃碼界面 title
scanRequest.setTitleText("標準掃碼");

// 設置掃碼窗口下提示文字
scanRequest.setViewText("提示文字");

// 設置打開手電筒提示文字,僅 10.1.60 及以上基線支持
scanRequest.setOpenTorchText("打開手電筒");

// 設置關閉手電筒提示文字,僅 10.1.60 及以上基線支持
scanRequest.setCloseTorchText("關閉手電筒");

// 設置掃碼識別類型,僅 10.1.60.6+ 和 10.1.68.2+ 基線支持
// 該設置僅對直接掃碼生效,對識別相冊圖片無效
scanRequest.setRecognizeType(
    ScanRequest.RecognizeType.QR_CODE,    // 二維碼
    ScanRequest.RecognizeType.BAR_CODE,   // 條形碼
    ScanRequest.RecognizeType.DM_CODE,    // DM 碼
    ScanRequest.RecognizeType.PDF417_Code // PDF417 碼
); // 不設置,則默認識別前三種

// 設置透明狀態(tài)欄(在 Android 4.4+ 系統(tǒng)上生效),僅 10.1.68.15+ 基線支持
scanRequest.setTranslucentStatusBar(true);

// 設置隱藏相冊按鈕,僅 10.1.68.22+ 基線支持
scanRequest.setNotSupportAlbum(true);

自定義 UI 下使用掃一掃

請參考 代碼示例

自定義 UI 升級適配

  • 自 10.2.3.35 起,掃一掃 SDK 新增了 MPCustomScanView 類以及相關接口,以代替此前使用的 MPScanner 來實現(xiàn)自定義 UI。相比 MPScanner,使用 MPCustomScanView 的方案封裝了相機管理、碼識別、多碼識別、畫面放大與縮小、碼結(jié)果解析等掃一掃服務核心流程,您在開發(fā)時無需關注相關操作,只需專注于在 MPCustomScanView 中實現(xiàn)您自定義的 UI。您仍然可以繼續(xù)使用 MPScanner,但該方案將不再維護,無法在后續(xù)的升級中獲得和全屏 UI 一致的特性更新(例如多碼識別)。推薦您在合適的時機改用 MPCustomScanView 方案來實現(xiàn)自定義 UI,該方案會在后續(xù)的特性升級中和全屏 UI 保持一致。

  • 自 10.1.68.5 和 10.1.60.11 起,掃一掃 SDK 新增了類 MPScanner 以及相關接口,用來替代此前自定義掃碼需要使用的 BQCScanCallbackMaScanCallback 等原始接口。相比原始接口,MPScanner 提供了完整的封裝性、簡潔易懂的 API,以及更多新特性的支持(例如環(huán)境亮度不足的回調(diào))。如果您仍然在使用 BQCScanCallbackMaScanCallback 等原始接口,當您從低版本升級時可能需要適配以下變更:

    • 10.1.68.22 版本:MaScanCallback 類、BQCScanCallback 類、IOnMaSDKDecodeInfo 類新增部分接口,您只需空實現(xiàn)這些接口即可,其中 MaScanCallback.onMaCodeInterceptor 方法返回 false 。

    • 10.1.60.6 版本:BQCScanCallback 類新增部分接口,您只需空實現(xiàn)這些接口即可。

    • 10.1.60 版本:BQCScanCallback 類新增部分接口,您只需空實現(xiàn)這些接口即可。

    • 10.1.20 版本:MaScanCallback 類接口變更如下:void onResultMa(MaScanResult maScanResult) 變更為 void onResultMa(MultiMaScanResult multiMaScanResult) 您可以按照以下方式獲取 MaScanResult

      MaScanResult maScanResult = multiMaScanResult.maScanResults[0];

自定義 UI API 說明

MPCustomScanView

使用MPCustomScanView,需要讓您的 Activity 繼承 MPaasToolsCaptureActivity,并實現(xiàn) getCustomScanView 方法并返回自定義的 MPCustomScanView

public class MyScanActivity extends MPaasToolsCaptureActivity {

    private MyScanView myScanView;

    @Override
    protected MPCustomScanView getCustomScanView() {
        myScanView = new MyScanView(this);
        // 具體可參考 github 代碼示例
        return myScanView;
    }
  
}

MPCustomScanView 中您可以實現(xiàn)或調(diào)用以下方法:

/**
 * 掃描開始的回調(diào)
 */
public void onStartScan();

/**
 * 相機首幀顯示的回調(diào)
 * 
 * 本方法和掃描開始的回調(diào),無法保證哪個會先執(zhí)行
 */
public void onPreviewShow();

/**
 * 掃描結(jié)束的回調(diào)
 */
public void onStopScan();

/**
 * 相機幀的灰度值回調(diào)
 * 掃描過程中每一幀都會回調(diào)一次
 * 
 * @param gray 平均灰度值,可用來衡量環(huán)境亮度
 */
public void onGetAvgGray(int gray);

/**
 * 掃描成功的回調(diào)(識別到碼)
 * 
 * @param context 當前上下文
 * @param list 識別的碼結(jié)果
 */
public abstract void onScanFinished(Context context, List<MPScanResult> list);

/**
 * 掃描失敗的回調(diào)
 * 
 * @param context 當前上下文
 * @param list 失敗原因
 */
public abstract void onScanFailed(Context context, MPScanError error);

/**
 * 打開相機失敗的回調(diào)
 */
public void onCameraOpenFailed();

/**
 * 打開或關閉閃光燈
 * 
 * @return 調(diào)用完該方法后閃光燈的狀態(tài)
 */
public boolean switchTorch();

/**
 * 從文件中識別碼
 * 
 * @param path 文件路徑
 * @return 識別的碼結(jié)果
 */
public List<MPScanResult> scanFromPath(String path);

MPScanResult

/**
 * 識別結(jié)果字符串
 */
private String text;

/**
 * 識別的碼類型
 */
private MPRecognizeType mpRecognizeType;

/**
 * 識別的碼的中心點坐標
 */
private Point centerPoint;

MPScanner(廢棄)

自定義 UI 相關的設置內(nèi)容如下:

/**
 * 設置顯示相機內(nèi)容的 View
 * 推薦在 {@link MPScanListener} 的 onConfiguration 方法中調(diào)用
 *
 * @param textureView 自定義掃碼頁中的 TextureView
 */
public void setDisplayView(TextureView textureView);

/**
 * 設置掃描識別的區(qū)域
 * 
 * @param rect 識別的區(qū)域
 */
public void setScanRegion(Rect rect);

/**
 * 設置掃描監(jiān)聽器
 */
public void setMPScanListener(MPScanListener mpScanListener);

/**
 * 設置識別圖像灰度值監(jiān)聽器
 */
public void setMPImageGrayListener(MPImageGrayListener mpImageGrayListener);

/**
 * 獲取 Camera 對象
 * 
 * @return Camera 對象
 */
public Camera getCamera();

/**
 * 設置識別的碼類型
 * 僅對直接掃碼生效,對從 bitmap 中識別碼無效
 *
 *
 * @param recognizeTypes BAR_CODE 條形碼;
 *                       QR_CODE 二維碼;
 *                       DM_CODE DM 碼;
 *                       PDF417_CODE PDF417 碼;
 *                       不設置則默認識別前三種
 */
public void setRecognizeType(MPRecognizeType... recognizeTypes);

自定義 UI 相關的掃描內(nèi)容如下:

/**
 * 打開相機并開始掃描
 * 
 * 首次進入頁面時或相機關閉狀態(tài)下調(diào)用
 */
public void openCameraAndStartScan();

/**
 * 關閉相機并停止掃描
 */
public void closeCameraAndStopScan();

/**
 * 開始掃描
 * 
 * 不會更改相機狀態(tài),需在相機打開的狀態(tài)下調(diào)用才能生效
 */
public void startScan();

/**
 * 停止掃描
 *
 * 不會更改相機狀態(tài)
 */
public void stopScan();

/**
 * 從 bitmap 中識別碼
 *
 * @param bitmap 需要識別的 bitmap
 * @return 識別結(jié)果
 */
public MPScanResult scanFromBitmap(Bitmap bitmap);

其他:

/**
 * 打開或關閉手電筒
 *
 * @return 調(diào)用方法后,手電筒是否打開
 */
public boolean switchTorch();

/**
 * 打開手電筒
 */
public void openTorch();

/**
 * 關閉手電筒
 */
public void closeTorch();

/**
 * 播放默認的“嗶嗶”聲
 */
public void beep();

/**
 * 釋放資源
 * 
 * 請在 onDestroy 中調(diào)用
 */
public void release();

MPScanListener(廢棄)

/**
 * 掃描參數(shù)配置完成
 */
void onConfiguration();

/**
 * 掃描識別開始
 */
void onStart();

/**
 * 識別成功
 *
 * @param result 識別結(jié)果
 */
void onSuccess(MPScanResult result);

/**
 * 識別錯誤
 *
 * @param error 錯誤
 */
void onError(MPScanError error);

MPImageGrayListener(廢棄)

/**
 * 獲取識別圖像的平均灰度值
 *
 * 正常范圍大約在 50-140 之間,
 * 當灰度值低于或高于正常范圍時,通常意味著環(huán)境亮度過低或過高,可以提示用戶打開或關閉手電筒
 * 注意:該方法在識別過程中會不斷被調(diào)用
 *
 * @param gray 圖像的平均灰度值
 */
void onGetImageGray(int gray);