https://editor.csdn.net/md/?articleId=109243638

HuaweiのNearServiceは、Huaweiの自社開発プロトコルを使用しており、アプリケーションがNearby Serviceを統合した後、トラフィックなしでスマートデバイス間の高速かつ高速なファイル転送を実現でき、統合プロセスはシンプルで理解しやすいものです。

スマートフォンの普及率が高まるにつれ、人々はますますスマートフォンに依存するようになっています。最も一般的に使用される携帯電話アプリケーションには、ソーシャルアプリケーション(写真、ファイル、チャット履歴の転送など)、ファイル管理アプリケーション(ファイルの転送、バックアップ、電話のクローン作成など)、オーディオおよびビデオアプリケーション(曲の共有)などのファイル転送機能があります。 、ビデオなど)。これらのタイプのアプリケーションのファイル転送機能は、主にネットワークディスクとクラウドサーバーを使用してファイルを別のデバイスに転送することです。これらの方法はすべて、ユーザートラフィックを使用するか、Wi-Fiシナリオで送信する必要があり、トラフィックなしで対面送信する機能はありません。一部の開発者は、BluetoothまたはWi-Fiを介して近距離データ伝送を実現しようとする場合がありますが、これには複雑なネットワークプロトコルとハードウェアデバイスを処理する必要があり、伝送速度は十分ではありません。

近隣サービスの4つの利点

  • 簡単な統合:2つのファイル転送APIのみで、複雑なネットワークプロトコルを処理する必要はありません。

  • 非常に高速な伝送:最大伝送速度は60M /秒を超える可能性があり、1GBファイルの転送には20秒しかかかりません。

  • インターネットに接続する必要はありません:ルーターや他のネットワークデバイスの助けがなければ、データ送信はBluetoothとWi-Fiを介して実現され、ユーザー自身のトラフィックを犠牲にすることはありません。

  • プラットフォームのサポート:すべてのAndroidプラットフォーム(HuaweiデバイスとHuawei以外のデバイス)をサポートし、他のプラットフォームが次々に開かれます。

デモアプリケーションの紹介(NearbyTransfer)

開発者がNearbyServiceを統合する方法をよりよく理解できるようにするために、参照用にファイルを転送するためにコードをスキャンするためのデモを次に示します。NeighborhoodTransferは、#HMS Core#Nearby Serviceとスキャンキットを統合し、コードをスキャンすることで2つのスマートデバイス(携帯電話、パッドなど)間のデータ送信を完了できます。

開発戦闘

NeighborhoodTransferオープンソースプロジェクトのGithubリンク:

https://github.com/HMS-Core/hms-nearby-demo/tree/master/NearbySimpleconnection

実装の詳細を理解できるように、ソースコードに基づいてこのデモを実行する方法を次に示します。

開発準備

ツールの準備

  1. 2台のHuawei電話(最高の効果)

  2. 開発ツールAndroidStudio(3.X以降)

開発者として登録する

Huawei開発者として登録します。

アプリケーションを作成する

近隣サービスの開発を参照し、Huaweiアプリケーション市場でアプリケーションを作成する準備をしてください。

デモアプリケーションを作成する

ソースコードをAndroidStudio(3.X以降)にインポートする

Huawei App Marketで新しく作成されたアプリケーションのagconnect-services.jsonファイルをローカルにダウンロードし、サンプルコードのappディレクトリ(\ app)に配置します。

サンプルアプリケーションを実行します

  1. テストマシンA、Bにデモアプリケーションをインストールします

  2. テストマシンAで「ファイルの送信」を選択し、転送するファイルを選択して、QRコードを生成します。

  3. テストマシンBで「ファイルの受信」を選択します

  4. ファイル転送が終了するのを待ちます

ここに写真の説明を挿入

キーコードの説明

プロジェクトレベルのgradleにHuaweimavenウェアハウスを追加します

AndroidStudioプロジェクトレベルのbuild.gradleファイルで、次のmavenアドレスを段階的に追加します。

buildscript {
    repositories {
        maven { url 'http://developer.huawei.com/repo/'}
    }    }allprojects {
    repositories {
        maven { url 'http://developer.huawei.com/repo/'}
    }}

SDKの依存関係をアプリケーションレベルのbuild.gradleに追加します

dependencies {
    implementation 'com.huawei.hms:nearby:5.0.2.300'
    implementation 'com.huawei.hms:scan:1.2.3.300'
}

AndroidManifest.xmlファイルでシステム権限を宣言します

Neighborhood ServiceはBluetooth、Wi-Fi、ストレージ、その他の機能に基づいているため、Bluetooth、Wi-Fi、ストレージ、および位置情報のアクセス許可を宣言する必要があります。(スキャンコードのアクセス許可が追加されます)

    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <!--相机权限-->
    <uses-permission android:name="android.permission.CAMERA" />

ACCESS_FINE_LOCATION、WRITE_EXTERNAL_STORAGE、およびREAD_EXTERNAL_STORAGEは危険なシステム権限であるため、これらの権限を動的に申請する必要があります。権限が不十分な場合、NearbyServiceはアプリケーションのブロードキャストまたはスキャンを有効にすることを拒否します。

キーコード

メインコードパス:com \ huawei \ hms \ simpleNearbyDemo \ MainActivity.java

アプリケーションがファイルを転送するためにNearbyServiceを統合する必要がある場合は、MainActivityを参照してnearbyAgent.sendFile()とnearbyAgent.receiveFile()をアプリケーションに統合するだけで、コードをスキャンしてファイルを転送できます。

1.ファイルを送信する
送信者はファイルを選択し、nearbyAgent.sendFile(uri)を呼び出して、ファイルを送信する準備をします。

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    switch (requestCode) {
        case FILE_SELECT_CODE:
            if (resultCode == RESULT_OK) {
                // Get the Uri of the selected file
                Uri uri = data.getData();
                nearbyAgent.sendFile(uri);
            }
            break;
        case NearbyAgent.REQUEST_CODE_SCAN_ONE:
            nearbyAgent.onScanResult(data);
        default:
            break;
    }

    super.onActivityResult(requestCode, resultCode, data);
}

2.受信したファイルの受信者は、
nearbyAgent.onScanResult(data)を呼び出してファイルを受信します

  recvBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            nearbyAgent.receiveFile();
        }
    });

詳細については、以下を参照してください。

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

開発ガイダンス文書を入手する:https://developer.huawei.com/consumer/en/doc/development/HMSCore-Guides/service-introduction-0000001050040060

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

デモとサンプルコードをダウンロードするには、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 = 0203382449995050417&fid = 18
作成者:pepper

おすすめ

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