序文
数日前、編集者は買い物を終えて、楽しく家に帰る準備をしました。結果はガレージの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
作成者:こんにちは