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
実装の詳細を理解できるように、ソースコードに基づいてこのデモを実行する方法を次に示します。
開発準備
ツールの準備
-
2台のHuawei電話(最高の効果)
-
開発ツールAndroidStudio(3.X以降)
開発者として登録する
Huawei開発者として登録します。
アプリケーションを作成する
近隣サービスの開発を参照し、Huaweiアプリケーション市場でアプリケーションを作成する準備をしてください。
デモアプリケーションを作成する
ソースコードをAndroidStudio(3.X以降)にインポートする
Huawei App Marketで新しく作成されたアプリケーションのagconnect-services.jsonファイルをローカルにダウンロードし、サンプルコードのappディレクトリ(\ app)に配置します。
サンプルアプリケーションを実行します
-
テストマシンA、Bにデモアプリケーションをインストールします
-
テストマシンAで「ファイルの送信」を選択し、転送するファイルを選択して、QRコードを生成します
-
テストマシンBで「ファイルの受信」を選択します
-
ファイル転送が終了するのを待ちます
キーコードの説明
プロジェクトレベルの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
統合の問題を解決するには、Stack Overflowにアクセスしてください:https://stackoverflow.com/questions/tagged/huawei-mobile-services?tab = Newest
元のリンク:https:?// Developer.huawei.com/consumer/cn/forum/topicview tid = 0203382449995050417 &fid = 18
作成者:pepper