在华为AppGallery Connect控制台创建应用。开发者可以先创建一个项目,然后在项目中添加应用。创建应用的过程中开发者需要填写对应应用的名称、包名、分类、语言等信息,创建完成后开发者可以获得应用的基本配置信息。

  1. 登录AppGallery Connect网站,输入账号信息进入AppGallery Connect控制台。
  2. AppGallery Connect控制台页面上,点击"我的项目",进入项目管理页面。
  3. 在我的项目管理页面,点击添加项目按钮,输入项目名称,创建项目。
  4. 在项目设置页面点击添加应用开始创建我的应用。
  5. 在创建应用页面,填写应用名称、应用包名平台,设备,应用分类应用、游戏)和语言,请按实际情况选择。
  6. 应用创建成功后,可在我的项目中查看应用的包名等信息。

通过Visual Studio创建一个Xamarin项目,创建应用的包名与AppGallery Connect上填写的应用的包名保持一致。

  1. 打开Visual Studio工具,点击"Create a new project"创建一个Xamarin项目。

  2. 搜索框输入"xamarin",选择"Android App(Xamarin)",然后点击Next按钮。
  3. 填写对应项目名称、然后点击Create按钮。
  4. 选择"Single View App"作为应用模板,点击OK,完成项目的创建。

Android配置

  1. 实现LazyInputStream读取agconnect-services.json文件
    a) 右键单击项目,然后从快捷菜单中选择"Add > New Item"。

    b) 在打开的窗口中,选择Class,并给新类命名为HmsLazyInputStream.cs。

    c) 新类HmsLazyInputStream.cs继承LazyInputStream类,并实现HmsLazyInputStream.cs类,如下代码:
    using System; using System.IO; using Android.Content; using Android.Util; using Huawei.Agconnect.Config; namespace agcdemo { public class HmsLazyInputStream : LazyInputStream { public HmsLazyInputStream(Context context) : base(context) { } public override Stream Get(Context context) { try { return context.Assets.Open("agconnect-services.json"); } catch (Exception e) { Log.Error("Hms", $"Failed to get input stream" + e.Message); return null; } } } }
    d) 继续参考步骤a和b创建一个新类,命名新类为XamarinCustomProvider.cs并继承ContentProvider类,在应用启动前读取agconnect-services.json文件。指定该类为内容提供类,并设置authorities和InitOrder属性。
    如下代码:
    using System; using Android.Content; using Android.Database; using Huawei.Agconnect.Config; namespace agcdemo { [ContentProvider(new string[] {"APP_PACKAGE_NAME.XamarinCustomProvider"},InitOrder =99)] public class XamarinCustomProvider : ContentProvider { public override int Delete(Android.Net.Uri uri, string selection, string[] selectionArgs) { throw new NotImplementedException(); } public override string GetType(Android.Net.Uri uri) { throw new NotImplementedException(); } public override Android.Net.Uri Insert(Android.Net.Uri uri, ContentValues values) { throw new NotImplementedException(); } public override bool OnCreate() { AGConnectServicesConfig config = AGConnectServicesConfig.FromContext(Context); config.OverlayWith(new HmsLazyInputStream(Context)); return false; } public override ICursor Query(Android.Net.Uri uri, string[] projection, string selection, string[] selectionArgs, string sortOrder) { throw new NotImplementedException(); } public override int Update(Android.Net.Uri uri, ContentValues values, string selection, string[] selectionArgs) { throw new NotImplementedException(); } } }
  2. 设置包名。
    a) 右键单击项目并选择"Properties"。

    b) 在弹出的页面中,选择"Android Manifest",在Package name处输入应用包名。

IOS配置

  1. 设置应用包标识
    a) 打开创建好的Xamarin项目,双击打开Info.plist文件,选择Application页签,配置Bundle Identifier为创建应用时在AGC中填写的应用包ID。

    b) 选择"File">"Save"项或按Command+S保存设置。
  2. 右击项目并在快捷菜单中选择Options,选择iOS Bundle Signing,然后选择您的Provisioning Profile配置文件,并且设置Custom Entitlements为Entitlements.plist。
Code copied