10 Pertanyaan untuk Dukungan HMS pada Aplikasi Hybrid, AppGallery, dan Emulasi Ponsel Huawei





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:





React Native:





Xamarin:





Berdebar:





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.



All Articles