Halo, Habr! Jumlah layanan di ekosistem Huawei Mobile Services (HMS) per tahun. meningkat dari 9 menjadi 31, dan pengembang mulai memiliki lebih banyak pertanyaan tentang dukungan aplikasi hybrid, interaksi dengan AppGallery, penggunaan layanan individu dan paus. Platform utama untuk komunikasi kami dengan komunitas global adalah Stackoverflow , Reddit , XDA-Developers, dan bagian dukungan di portal pengembang Huawei. Khusus untuk mereka yang tertarik dengan platform kami, kami telah mengumpulkan dari situs-situs ini 10 pertanyaan tentang bekerja dengan Layanan Seluler Huawei.
1. Akankah React-native dan Firebase SDK berfungsi pada ponsel Huawei tanpa Layanan Google dan tidak ada perubahan kode?
Ya, aplikasi React-native akan berfungsi tanpa modifikasi, cukup kirimkan APK untuk diunggah ke Galeri Aplikasi Huawei. Firebase SDK sedikit lebih rumit. Kinerja aplikasi Anda bergantung pada layanan yang Anda coba sertakan dalam aplikasi Anda. Misalnya, masuk ke Google menggunakan modul otentikasi Firebase tidak akan didukung pada ponsel yang tidak memiliki Layanan Seluler Google, seperti Huawei Mate 30 Pro.
Jika ingin menggunakan APK yang sama untuk GMS dan HMS, Anda perlu memeriksa ketersediaan layanan terlebih dahulu.
Untuk RUPS:
val gmsAvailable = GooglePlayServicesUtil.getInstance().isGooglePlayServicesAvailable(mContext)
Untuk HMS:
val hmsAvailable = HuaweiApiAvailability.getInstance().isHuaweiMobileServicesAvailable(mContext)
Saat mencoba menggunakan Google Login, atau Huawei Login, atau layanan lainnya:
if gmsAvailable {
// execute GMS Code
} else if hmsAvailable {
// execute HMS Code
}
2. Berapa biaya sebenarnya yang tersembunyi untuk mendukung ekosistem tambahan?
Biaya pemeliharaan aplikasi di HMS bergantung pada bagaimana Anda mendesain sistem dan layanan apa yang dibutuhkan aplikasi Anda. Rata-rata, waktu integrasi dapat bervariasi dari beberapa jam hingga beberapa minggu, tergantung pada aplikasi dan jumlah layanan Google dan Firebase di aplikasi asli.
Jika aplikasi Anda tidak memiliki GMS terintegrasi, Anda dapat mengunduhnya tanpa modifikasi apa pun - Facebook, Yandex, dan layanan lainnya akan berfungsi.
3. Mashup apa yang didukung HMS?
Sejak HMS Core 5.0.0, jumlah paus yang didukung oleh platform pihak ketiga telah ditingkatkan:
Apache Cordova:
- Plugin Account Kit untuk Cordova
- Plugin Ads Kit untuk Cordova
- Plugin Analytics Kit untuk Cordova
- Plugin Kit Pembelian Dalam Aplikasi untuk Cordova
- Plugin Location Kit untuk Cordova
- Plugin Map Kit untuk Cordova
- Plugin ML Kit untuk Cordova
- Plugin Push Kit untuk Cordova
- Plugin Site Kit untuk Cordova
React Native:
- Plugin Account Kit untuk React Native
- Plugin Ads Kit untuk React Native
- Plugin Analytics Kit untuk React Native
- Plugin Health Kit untuk React Native
- Plugin Kit Pembelian Dalam Aplikasi untuk React Native
- Plugin Location Kit untuk React Native
- Plugin Map Kit untuk React Native
- Plugin ML Kit untuk React Native
- Plugin Push Kit untuk React Native
- Plugin Site Kit untuk React Native
Xamarin:
- Plugin Account Kit untuk Xamarin
- Plugin Ads Kit untuk Xamarin
- Plugin Analytics Kit untuk Xamarin
- Plugin Map Kit untuk Xamarin
- Plugin Location Kit untuk Xamarin
- Plugin Push Kit untuk Xamarin
- Plugin Site Kit untuk Xamarin
Berdebar:
- Plugin Account Kit untuk Flutter
- Plugin Ads Kit untuk Flutter
- Plugin Analytics Kit untuk Flutter
- Plugin Kit Pembelian Dalam Aplikasi untuk Flutter
- Plugin Location Kit untuk Flutter
- Plugin Map Kit untuk Flutter
- Plugin Push Kit untuk Flutter
- Plugin Site Kit untuk Flutter
4. Bisakah Anda membaca data depth sensor (TOF) pada ponsel Huawei?
Ya, ini dimungkinkan dengan menggunakan AR Engine SDK . Huawei AR Engine menyediakan rendering grid pemandangan secara real-time, dan hasilnya mencakup posisi ponsel di luar angkasa. Kisi 3D pada tampilan kamera saat ini hanya mendukung model Honor V20 dan P30Pro, yang dapat menerima informasi kedalaman, dan pemandangan pemindaian yang didukung bersifat statis.
TOF didukung pada perangkat berikut:
- P: P30 / P30Pro / P40 / P40Pro / P40Pro +
- Mate: Mate20 / Mate20Pro / Mate20RS / Mate 20X / Mate20X (5G) / Mate30 / Mate30Pro / Mate30RS / Mate30 (5G) / Mate30Pro (5G) / Mate X / Mate XS
- Nova: Nova6 / Nova6-5G / Nova7 / Nova7Pro
- Honor: Honor V20 / Honor 20 / Honor 20Pro / Honor V30 / Honor V30Pro / Honor 30S / Honor 30 Pro / Honor 30 Pro +
- : Tablet M6
Untuk mendapatkan data dari TOF, gunakan kelas ARSceneMesh menggunakan metode berikut:
public ShortBuffer getSceneDepth()
// Get the depth image of current frame(optimized).
public int getSceneDepthHeight()
// Get the height of the depth image.
public int getSceneDepthWidth()
// Get the width of the depth image.
Ada opsi lain untuk cara menghitung kedalaman. Anda bisa mendapatkan objek kelas ARFrame dan menggunakan metodenya hitTest, acquiringDepthImage. Metode GetSceneDepth dari kelas ARSceneMesh juga mengembalikan peta kedalaman yang diproses. Ini lebih akurat, tetapi hanya bekerja hingga 2,5 meter.
5. Bagaimana cara membuka AppGallery langsung dari aplikasi?
AppGallery dari aplikasi terbuka dengan cara yang sama seperti Google Play Store. Harap dicatat bahwa AppGallery menggunakan appmarket: // skema sendiri:
- Skema: appmarket: //
- Paket: com.huawei.appmarket
Berikut ini cuplikan dari AppGallery
private void startHuaweiAppGallery() {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("appmarket://details?id=" + getPackageName()));
List<ResolveInfo> otherApps = getPackageManager().queryIntentActivities(intent, 0);
boolean agFound = false;
for (ResolveInfo app : otherApps) {
if (app.activityInfo.applicationInfo.packageName.equals("com.huawei.appmarket")) {
ComponentName psComponent = new ComponentName(app.activityInfo.applicationInfo.packageName, app.activityInfo.name);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED | Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.setComponent(psComponent);
startActivity(intent);
agFound = true;
break;
}
}
//Optional, Or copy the Google Play Store URL here (See below)
if (!agFound) {
//Your Huawei app ID can be found in the Huawei developer console
final string HUAWEI_APP_ID = "100864605";
//ex. https://appgallery.cloud.huawei.com/marketshare/app/C100864605
intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://appgallery.cloud.huawei.com/marketshare/app/C" + HUAWEI_APP_ID));
startActivity(intent);
}
}
6. Bagaimana cara membuat Huawei Android Emulator?
Huawei memberi pengembang Huawei debugging cloud sebagai layanan gratis. Jika Anda menggunakan Huawei SDK, Anda harus memiliki akun pengembang Huawei. Cukup masuk ke Konsol Pengembang Huawei dan ikuti petunjuknya .
Fitur cloud debugging sangat mudah digunakan. Ini memungkinkan debugging jarak jauh pada perangkat nyata. Dalam prosesnya, Anda dapat melihat informasi perangkat, mengunduh dan menginstal APK ke perangkat jarak jauh, menerima log aktivitas, dan menyimpan log ke komputer lokal Anda untuk dianalisis.
7. Bagaimana cara mengakses payload notifikasi push HMS?
Untuk mengakses payload, Anda perlu mengimplementasikan kelas HmsMessageService dan mengganti metode onMessageReceived. Anda dapat mengakses payload dari objek RemoteMessage. Untuk mengakses token, ganti metode onNewToken.
Kode Java:
import android.util.Log;
import com.huawei.hms.push.HmsMessageService;
import com.huawei.hms.push.RemoteMessage;
public class HService extends HmsMessageService {
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
if (remoteMessage != null) {
if (!remoteMessage.getData().isEmpty()) {
Log.d("HMS", "Payload" + remoteMessage.getData());
}
if (remoteMessage.getNotification() != null) {
Log.d("HMS", "Message Notification Body: " + remoteMessage.getNotification().getBody());
}
}
}
}
Kode Kotlin:
override fun onMessageReceived(remoteMessage: RemoteMessage?) {
super.onMessageReceived(remoteMessage)
if (remoteMessage!!.data.isNotEmpty()) {
Log.i(TAG, "Message data payload: " + remoteMessage.data)
}
if (remoteMessage.notification != null) {
Log.i(TAG, "Message Notification Body: " + remoteMessage.notification.body)
}
}
Pastikan Anda mendaftarkan layanan Anda:
<service
android:name=".service.HService"
android:enabled="true"
android:exported="true"
android:permission="${applicationId}.permission.PROCESS_PUSH_MSG"
android:process=":HmsMessageService">
<intent-filter>
<action android:name="com.huawei.push.action.MESSAGING_EVENT" />
</intent-filter>
</service>
8. Alat apa yang digunakan saat mengembangkan aplikasi Android untuk ponsel Huawei?
Untuk pengembangan aplikasi, Anda dapat menggunakan Android Studio dan IDE lainnya seperti Eclipse, Intelliji IDEA. Jika Anda sudah memiliki aplikasi yang menggunakan GMS, gunakan HMS Toolkit untuk mengonversi kode GMS Anda agar berfungsi dengan HMS. Perlu diingat bahwa HMS Toolkit tidak mendukung konversi semua layanan, dan sebelum menggunakannya, sebaiknya jelaskan layanan mana yang dapat ditransfer.
9. Bagaimana cara menginisialisasi layanan HMS tanpa agconnect-services.json?
Sejauh ini HMS tidak menyediakan solusi inisialisasi berbasis kode tunggal. Inisialisasi tanpa file json dimungkinkan saat bekerja dengan layanan berikut:
- Kit Dorong:
<meta-data
android:name="com.huawei.hms.client.appid"
<!-- Replace value xxx with the actual appid.-->
android:value="appid=xxx">
</meta-data>
- Kit Peta:
MapsInitializer.setApiKey("Your API Key");
- Kit Situs :
SearchService searchService = SearchServiceFactory.create(this, "API key");
- ML Kit:
MLApplication.getInstance().setApiKey("your ApiKey");
10. Apa yang dapat dilakukan sistem manajemen produk (PMS) dalam Pembelian Dalam Aplikasi HMS?
API Sistem Manajemen Produk (PMS) memungkinkan Anda membuat dan mengelola informasi produk. Melalui itu Anda dapat:
- Buat produk: termasuk langganan dengan pembaruan otomatis.
- Informasi produk kueri: Misalnya, Anda dapat membuat kueri untuk produk tertentu berdasarkan App ID dan ID Produk, atau kueri untuk semua produk yang cocok dengan kriteria yang Anda tentukan.
- Perbarui informasi produk: nama produk , bahasa, harga dan status. Anda dapat mengerjakan satu atau beberapa produk secara bersamaan.
- Promosikan Produk: API memungkinkan Anda untuk mengkategorikan kampanye iklan menurut wilayah, menyetel waktu promosi, dan menetapkan harga.
Itu saja untuk saat ini, jika Anda memiliki pertanyaan tentang bekerja dengan HMS, tanyakan di komentar.