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