How to open the Huawei AppGallery directly? How to open the Huawei AppGallery directly? android android

How to open the Huawei AppGallery directly?


Opening your app in the Huawei App Gallery is similar to opening Google Play Store:

Huawei App Gallery uses its own scheme appmarket://:

  • Scheme: appmarket://
  • Package: com.huawei.appmarket

vs. Google Play Store:

  • Scheme: market://
  • Package: com.android.vending

Here is a snippet for the Huawei App Gallery:

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);    }}

Here is the snippet for Google Play:

private void startGooglePlay() {    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + getPackageName()));    List<ResolveInfo> otherApps = getPackageManager().queryIntentActivities(intent, 0);    boolean psFound = false;    for (ResolveInfo app : otherApps) {        if (app.activityInfo.applicationInfo.packageName.equals("com.android.vending")) {            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);            psFound = true;            break;        }    }    if (!psFound) {        intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + getPackageName()));        startActivity(intent);    }}

Edit

Huawei App Gallery now also supports the same Scheme as Google Play Store: market://com.huawei.appmarket


I agree with @Pierre

But I also think you can resolve activity with links

https://appgallery8.huawei.com/#/app/C<HUAWEI_APP_ID>

or

https://appgallery.cloud.huawei.com/uowap/index.html#/detailApp/C<HUAWEI_APP_ID>?appId=C<HUAWEI_APP_ID>

For example, https://appgallery.cloud.huawei.com/uowap/index.html#/detailApp/C101652909?appId=C101652909


A simple way to open app in Huawei App Gallery store:

public void reviewApp(String packageName){        try {            Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("appmarket://details?id=" + packageName));            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);            startActivity(intent);        } catch (ActivityNotFoundException anfe) {            Toast.makeText(this, "Huawei AppGallery not found!", Toast.LENGTH_SHORT).show();        }}

then call it from your activity:

reviewApp(this.getPackageName());

or:

reviewApp("com.myapp.android");