مرحبا هبر! عدد الخدمات في نظام Huawei Mobile Services (HMS) البيئي سنويًا. زادت من 9 إلى 31 ، وبدأ المطورون في طرح المزيد والمزيد من الأسئلة حول دعم التطبيقات المختلطة ، والتفاعل مع AppGallery ، واستخدام الخدمات الفردية والحيتان. المنصات الرئيسية لاتصالاتنا مع المجتمع الدولي هي ستاكوفيرفلوو ، رديت ، XDA مطورين و قسم الدعم على بوابة المطور هواوي. خاصة بالنسبة لأولئك المهتمين بمنصتنا ، قمنا بجمع 10 أسئلة حول العمل مع Huawei Mobile Services من هذه المواقع.
1. هل سيعمل React-native و Firebase SDK على هواتف Huawei بدون خدمة Google ولا يتغير الرمز؟
نعم ، سيعمل تطبيق React-native بدون تعديل ، ما عليك سوى إرسال ملف APK للتحميل إلى معرض تطبيقات Huawei. تعتبر حزمة Firebase SDK صعبة بعض الشيء. يعتمد أداء تطبيقك على الخدمات التي تحاول تضمينها في تطبيقك. على سبيل المثال ، لن يتم دعم تسجيل الدخول إلى Google باستخدام وحدة مصادقة Firebase على الهواتف التي لا تحتوي على خدمات Google للجوال ، مثل Huawei Mate 30 Pro.
إذا كنت تريد استخدام نفس APK لكل من GMS و HMS ، فأنت بحاجة إلى التحقق من توفر الخدمة أولاً.
بالنسبة لـ GMS:
val gmsAvailable = GooglePlayServicesUtil.getInstance().isGooglePlayServicesAvailable(mContext)
بالنسبة إلى HMS:
val hmsAvailable = HuaweiApiAvailability.getInstance().isHuaweiMobileServicesAvailable(mContext)
عند محاولة استخدام تسجيل الدخول إلى Google أو تسجيل الدخول إلى Huawei أو أي خدمات أخرى:
if gmsAvailable {
// execute GMS Code
} else if hmsAvailable {
// execute HMS Code
}
2. ما هي التكاليف الحقيقية الخفية لدعم نظام بيئي إضافي؟
تعتمد تكلفة صيانة التطبيق في HMS على كيفية تصميمك للنظام والخدمات التي يتطلبها تطبيقك. في المتوسط ، يمكن أن تختلف أوقات الدمج من بضع ساعات إلى عدة أسابيع ، اعتمادًا على التطبيق وعدد خدمات Google و Firebase في التطبيق الأصلي.
إذا لم يكن تطبيقك يحتوي على GMS مدمج ، فيمكنك تنزيله دون أي تعديلات - ستعمل خدمات Facebook و Yandex وغيرها.
3. ما تطبيقات المزج التي يدعمها HMS؟
منذ HMS Core 5.0.0 ، تم زيادة عدد الحيتان التي تدعمها منصات الطرف الثالث:
Apache Cordova:
- ملحقات Account Kit لـ Cordova
- الإضافات Ads Kit لـ Cordova
- البرنامج المساعد Analytics Kit لـ Cordova
- المكوِّن الإضافي لمجموعة عمليات الشراء داخل التطبيق لـ Cordova
- المكوِّن الإضافي Location Kit لـ Cordova
- ملحقات Map Kit لكوردوفا
- ملحقات ML Kit لكوردوفا
- ادفع Kit plugin for Cordova
- ملحقات Site Kit لـ Cordova
رد الفعل الأصلي:
- مكونات Account Kit الإضافية لـ React Native
- إضافات Ads Kit لـ React Native
- المكون الإضافي Analytics Kit لـ React Native
- المكون الإضافي Health Kit لـ React Native
- مكون إضافي لمجموعة عمليات الشراء داخل التطبيق لـ React Native
- المكوّن الإضافي Location Kit لـ React Native
- البرنامج المساعد Map Kit لـ React Native
- ملحقات ML Kit لـ React Native
- البرنامج المساعد Push Kit لـ React Native
- مكونات Site Kit الإضافية لـ React Native
زامارين:
- ملحقات Account Kit لـ Xamarin
- إضافات Ads Kit لـ Xamarin
- ملحقات Analytics Kit لـ Xamarin
- ملحقات Map Kit لـ Xamarin
- ملحقات مجموعة الموقع لـ Xamarin
- أدوات Push Kit لـ Xamarin
- ملحقات Site Kit لـ Xamarin
رفرفة:
- ملحقات Account Kit لـ Flutter
- إضافات Ads Kit لـ Flutter
- ملحقات Analytics Kit لـ Flutter
- مكون إضافي لمجموعة المشتريات داخل التطبيق لـ Flutter
- الإضافات Location Kit لـ Flutter
- ملحقات Map Kit لـ Flutter
- أدوات Push Kit لـ Flutter
- الإضافات Site Kit لـ Flutter
4. هل يمكنك قراءة بيانات مستشعر العمق (TOF) على هواتف هواوي؟
نعم ، هذا ممكن باستخدام AR Engine SDK . يوفر محرك Huawei AR Engine عرضًا في الوقت الفعلي لشبكة المشهد ، والنتيجة تشمل موضع الهاتف المحمول في الفضاء. تدعم الشبكة ثلاثية الأبعاد لعرض الكاميرا الحالي فقط طرازي Honor V20 و P30Pro ، والتي يمكنها تلقي معلومات العمق ، ويكون مشهد المسح المدعوم ثابتًا.
TOF مدعوم على الأجهزة التالية:
- 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
لتلقي البيانات من TOF ، تحتاج إلى استخدام فئة ARSceneMesh باستخدام الطرق التالية:
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.
هناك خيارات أخرى لكيفية حساب العمق. يمكنك الحصول على كائن فئة ARFrame واستخدام أساليبها hitTest ، و acquDepthImage. تقوم طريقة GetSceneDepth من فئة ARSceneMesh أيضًا بإرجاع خريطة العمق التي تمت معالجتها. إنه أكثر دقة ، لكنه يعمل فقط حتى 2.5 متر.
5. كيف يمكنني فتح AppGallery مباشرة من التطبيق؟
يفتح AppGallery من التطبيق بنفس طريقة متجر Google Play. يرجى ملاحظة أن AppGallery يستخدم appmarket: // مخطط خاص به:
- المخطط: أب ماركت: //
- الحزمة: com.huawei.appmarket
هنا مقتطف من 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. كيف يمكن إنشاء Huawei Android Emulator؟
توفر Huawei لمطوري Huawei التصحيح السحابي كخدمة مجانية. إذا كنت تستخدم Huawei SDK ، فيجب أن يكون لديك حساب مطور Huawei. ما عليك سوى تسجيل الدخول إلى Huawei Developer Console واتباع التعليمات .
ميزة تصحيح الأخطاء السحابية سهلة الاستخدام حقًا. يسمح بتصحيح الأخطاء عن بعد على الأجهزة الحقيقية. في هذه العملية ، يمكنك عرض معلومات الجهاز وتنزيل ملفات APK وتثبيتها على الأجهزة البعيدة وتلقي سجلات العمليات وحفظ السجلات على جهاز الكمبيوتر المحلي لتحليلها.
7. كيفية الوصول إلى حمولة إخطارات HMS الفورية؟
للوصول إلى الحمولة ، تحتاج إلى تنفيذ فئة HmsMessageService وتجاوز طريقة onMessageReceived. يمكنك الوصول إلى الحمولة من كائن RemoteMessage. للوصول إلى الرمز المميز ، تجاوز طريقة onNewToken.
كود جافا:
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());
}
}
}
}
كود 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)
}
}
تأكد من تسجيل خدمتك:
<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. ما هي الأدوات التي يجب استخدامها عند تطوير تطبيق Android لهاتف Huawei المحمول؟
لتطوير التطبيقات ، يمكنك استخدام كل من Android Studio و IDEs الأخرى مثل Eclipse و Intelliji IDEA. إذا كان لديك بالفعل تطبيق يستخدم GMS ، فاستخدم HMS Toolkit لتحويل التعليمات البرمجية التي تعمل مع GMS للعمل مع HMS. يجب أن يؤخذ في الاعتبار أن HMS Toolkit لا تدعم تحويل جميع الخدمات ، وقبل استخدامها ، من الأفضل توضيح الخدمات التي يمكنها نقلها.
9. كيفية تهيئة خدمات HMS بدون agconnect-services.json؟
لا يوفر HMS حتى الآن حل تهيئة واحدًا قائمًا على رمز. يمكن التهيئة بدون ملف json عند العمل مع الخدمات التالية:
- طقم الدفع:
<meta-data
android:name="com.huawei.hms.client.appid"
<!-- Replace value xxx with the actual appid.-->
android:value="appid=xxx">
</meta-data>
- مجموعة الخرائط:
MapsInitializer.setApiKey("Your API Key");
- طقم الموقع :
SearchService searchService = SearchServiceFactory.create(this, "API key");
- مجموعة ML:
MLApplication.getInstance().setApiKey("your ApiKey");
10. ما الذي يمكن أن يفعله نظام إدارة المنتج (PMS) في عملية الشراء داخل التطبيق الخاصة بـ HMS؟
تتيح لك واجهة برمجة تطبيقات نظام إدارة المنتجات (PMS) إنشاء معلومات المنتج وإدارتها. من خلاله يمكنك:
- إنشاء المنتجات: بما في ذلك الاشتراكات مع التجديد التلقائي.
- الاستعلام عن معلومات المنتج: على سبيل المثال ، يمكنك الاستعلام عن منتج معين بناءً على معرف التطبيق ومعرف المنتج ، أو الاستعلام عن جميع المنتجات التي تطابق معاييرك المحددة.
- تحديث معلومات المنتج: اسم المنتج واللغة والسعر والحالة. يمكنك العمل مع منتج واحد أو عدة منتجات في نفس الوقت.
- الترويج للمنتجات: تسمح لك واجهة برمجة التطبيقات بتصنيف الحملات الإعلانية حسب المنطقة ، وتعيين أوقات الترويج وتحديد الأسعار.
هذا كل شيء في الوقت الحالي ، إذا كان لديك أي أسئلة حول العمل مع HMS ، فاطرحها في التعليقات.