QRコードが遠くにある、反射している、またはブロックされている場合はどうすればよいですか?心配しないでください。HuaweiのHMSスキャンキットがすべてを行います。

序文

  数日前、編集者は買い物を終えて、楽しく家に帰る準備をしました。結果はガレージのQRコードによってブロックされました。距離が遠すぎて認識できませんでした。後ろの車の所有者はまだ促していて、私は非常に腹を立てました。帰国後、友達に文句を言ったのですが、なかなか気持ちが悪く、QRコードの反射やオクルージョンについての大規模な文句に無理やり参加しました。

  コードスキャン機能は古くから使われていませんか?なぜそんなに多くの質問があるのですか?

  その後、インターネットでHuaweiのHMS Scanキットの紹介を偶然見たのですが、編集者が記事を読んで、Huawei Developer AllianceのWebサイトからAPKをダウンロードできることを知り、すぐにその効果を試しました。Huawei HMSスキャンキットは非常に強力で、長距離、反射、損傷、オクルージョンなどの複雑なスキャンシナリオを簡単に解決できます。

結果を示す

スキャンコード距離
ここに写真の説明を挿入
再帰反射スキャンコードの
ここに写真の説明を挿入
損傷、シャッタースキャンコード
ここに写真の説明を挿入

  編集者は、Huawei HMS Scanキットは、任意の角度でコードをスキャンし、曲面上のコードをスキャンし、同時に複数のコードを認識することもできることを発見しました。13のグローバルな主流コードをサポートし、生​​活や仕事などのさまざまなシーンのニーズを完全に満たすことができます。

  以下のリンクをクリックして、実際に体験してください。https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Examples-V5/android-sample-code-0000001050734383-V5

  ここでポイントが来ます。どうすればこのような便利で強力なスキャンサービス機能を利用できますか?

  心配しないでください、エディターはすでにすべての人のために開発プロセスを動かしました、来て統合してください!

開発戦闘

1 AppGalleryConnectを構成します

  アプリケーションを開発する前に、AppGalleryConnectで関連情報を構成する必要があります。含める:

  • 開発者として登録します。
  • アプリケーションを作成します。

  ここではあまり紹介はありません。操作については公式ウェブサイトを参照してください。
https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/agc-get-started#createproject

2 HMS CoreSDKを統合する

2.1現在のアプリケーションのAppGalleryConnectプロファイルを追加します

  AppGallery Connectで関連サービスをアクティブ化した場合は、「agconnect-services.json」ファイルをアプリに追加する必要があります。

  1. AppGallery Connect Webサイトにログインし、[マイプロジェクト]をクリックします。

  2.プロジェクトリストでプロジェクトを見つけ、HMS CoreSDKをプロジェクトに統合する必要があるアプリケーションをクリックします。

  3. [プロジェクト設定]> [一般]ページの[アプリケーション]領域で、[agconnect-services.json]をクリックして構成ファイルをダウンロードします。

  4.「agconnect-services.json」ファイルをアプリケーションレベルのルートディレクトリにコピーします。
ここに写真の説明を挿入

2.2 HMS CoreSDKのMavenウェアハウスアドレスを構成する
  1.AndroidStudioプロジェクトレベルの「build.gradle」ファイルを開きます。
ここに写真の説明を挿入

  2. HUAWEIagcpプラグインとMavenコードベースを追加します。

  • 「allprojects> repositories」でHMSCoreSDKのMavenリポジトリアドレスを設定します。
  • 「buildscript> repositories」でHMSCoreSDKのMavenリポジトリアドレスを設定します。
  • 「agconnect-services.json」ファイルがアプリに追加されている場合は、「buildscript> dependencies」にagcp構成を追加する必要があります。
buildscript {
    repositories {
        google()
        jcenter()
        maven {url 'https://developer.huawei.com/repo/'}
    }
    dependencies {
        ...
        classpath 'com.huawei.agconnect:agcp:1.3.1.300'
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        maven {url 'https://developer.huawei.com/repo/'}
    }
}

注:Mavenウェアハウスアドレスは、ブラウザーで直接開いてアクセスすることはできず、IDEでのみ構成できます。複数のMavenコードライブラリを追加する必要がある場合は、最後にHuaweiのMavenウェアハウスアドレスを構成してください。
2.3コンパイルの依存関係を追加する
1.AndroidStudioプロジェクトレベルの「build.gradle」ファイルを開きます。
ここに写真の説明を挿入

2.SDKを引用します。
Huawei Scan Kitには、通常バージョンとプラスバージョンの2つのSDKが用意されています。plusバージョンは、Huawei以外の電話でより適切に機能しますが、SDKは少し大きくなります。必要に応じて適切なSDKを選択し、バージョンの実際のSDKバージョン番号を入力できます。

たとえば、Scan Kit SDKを使用するには、「dependencies」に次のコンパイル依存関係を追加します。{version}をSDKの現在のバージョンに置き換える必要があります:実装 'com.huawei.hms:scan:1.2.2.300'。

dependencies{
  implementation 'com.huawei.hms:scan:1.2.2.300'
 }

3.ファイルヘッダー適用プラグインの次の行に次の構成を追加します: 'com.android.application'。
2.4プロジェクトの同期
  上記の構成が完了したら、ツールバーのgradle同期アイコンをクリックして、「build.gradle」ファイルの同期を完了し、関連する依存関係をローカルにダウンロードします。
ここに写真の説明を挿入

3権限を追加します

1.スキャンキットを呼び出すとき、開発者はマニフェストで対応する権限を指定する必要があります。
  カメラスキャンコード機能を構築するには、「CAMERA」(カメラ権限)を申請する必要があります。インポートされた画像スキャンコード機能を構築するには、「READ_EXTERNAL_STORAGE」(ファイル読み取り権限)を申請する必要があります。

<!--相机权限-->
<uses-permission android:name="android.permission.CAMERA" />
<!--读文件权限-->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<!--使用特性-->
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />

2.マニフェストで権限を指定した後、コードで権限を動的に申請する必要があります。

//CAMERA_REQ_CODE为用户自定义,用于接收权限校验结果 
ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE}, CAMERA_REQ_CODE);

3.対応する権限が有効になっているかどうかを確認し、コードのスキャンを続行するかどうかを決定します。

//实现“onRequestPermissionsResult”函数接收校验权限结果
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
    //判断“requestCode”是否为申请权限时设置请求码CAMERA_REQ_CODE,然后校验权限开启状态
    if (requestCode == CAMERA_REQ_CODE && grantResults.length == 2 && grantResults[0] == PackageManager.PERMISSION_GRANTED && grantResults[1] == PackageManager.PERMISSION_GRANTED) {
        //调用扫码接口,构建扫码能力,需开发者实现
        ...
    }
}

4アプリケーション開発

  Huawei HMS Scanキットには、デフォルトの表示モード、カスタマイズされた表示モード、ビットマップモード、マルチプロセッサモードの4つの呼び出し方法があり、開発者は必要に応じてコードスキャン機能を構築できます。

  ここのエディターは、カスタマイズされたビューモードの開発プロセスを紹介します。
1.スキャンコードページ要素をカスタマイズします。
(1)カスタムタイトル
は、テキスト情報を「タイトル」変数として定義します。

<TextView 
    android:layout_marginStart="10sp" 
    android:layout_toEndOf="@+id/back_img" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="center_vertical" 
    android:text="@string/title" 
    android:textAllCaps="false" 
    android:textColor="#FFFFFF" 
    android:textSize="20sp" 
    android:textStyle="bold" />

(2)戻るボタンをカスタマイズする

ID「back_img」でページビューを定義し、クリックして戻る操作をバインドします。

(3)カスタムフラッシュボタン

フラッシュボタンのページビューを定義し、開く操作と閉じる操作をバインドします。

(4)カスタムスキャンコードインターフェイス

スキャンコードボックスを描画します。

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    <ImageView 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:layout_centerInParent="true" 
        android:layout_centerHorizontal="true" 
        android:background="#FF000000" 
        android:alpha="0.1" /> 
    <TextView 
        android:layout_marginTop="225dp" 
        android:layout_centerHorizontal="true" 
        android:text="@string/scan_tip" 
        android:textAllCaps="false" 
        android:textColor="#FFFFFF" 
        android:textSize="15sp" 
        android:textStyle="bold" 
        android:layout_height="20dp" 
        android:layout_width="220dp" /> 
    <!-- 设置扫码框--> 
    <ImageView 
        android:layout_width="300dp" 
        android:layout_height="300dp" 
        android:layout_centerInParent="true" 
        android:layout_centerHorizontal="true" 
        android:background="@drawable/cloors" /> 
</RelativeLayout>

2.カスタマイズビューでカメラスキャンコード機能を実現します。
(1)リモートビューを作成し、アクティビティレイアウトにロードします。
(2)結果コールバック監視をリモートビューに設定し、スキャン結果オブジェクトであるHMSスキャンを取得します。

@Override
protected void onCreate(Bundle savedInstanceState) {
    …
    //识别结果回调事件订阅 
    remoteView.setOnResultCallback(new OnResultCallback() { 
        @Override 
        public void onResult(HmsScan[] result) { 
            //获取到扫码结果HmsScan
            showResult(result); 
        } 
    });
}

結びの言葉

  Huawei Scanキットは、コンピュータービジョンの分野におけるHuaweiの強力な機能に依存しており、長距離コードと小コードの検出と自動増幅をサポートし、反射、オクルージョン、デファレンス、ブラーなどの複雑なスキャンシナリオを効果的に処理し、AndroidとiOSのシステム統合をサポートして開発者を支援します関連するサービスをすばやく構築して、ユーザーのスキャンエクスペリエンスと成功率を向上させます。

  Scan Kitのサンプルコードは、Githubでオープンソース化されています:https//github.com/HMS-Core/hms-scan-demo

開発ガイドラインの詳細については、Huawei DeveloperAllianceの公式ウェブサイトをご覧ください。

https://developer.huawei.com/consumer/cn/hms/huawei-scankit
詳細については、以下を参照してください。

Huawei Developer Allianceの公式ウェブサイト:https://developer.huawei.com/consumer/cn/hms

開発ガイダンス文書を入手する:https://developer.huawei.com/consumer/cn/doc/development

開発者のディスカッションに参加するには、Redditコミュニティにアクセスしてください。https://www.reddit.com/r/HMSCore/

デモとサンプルコードをダウンロードするには、Githubにアクセスしてください。https://github.com/HMS-Core

統合の問題を解決するには、StackOverflowにアクセスしてください。https://stackoverflow.com/questions/tagged/huawei-mobile-services?tab=Newest


元のリンク:https//developer.huawei.com/consumer/cn/forum/topicview?tid = 0202356605936130805&fid = 18
作成者:こんにちは

おすすめ

転載: blog.51cto.com/14772288/2539210