How to open the Huawei AppGallery directly?

后端 未结 6 954
青春惊慌失措
青春惊慌失措 2020-12-14 10:47

I know that is possible to open my app (based on package name) in Google Play Store, but how to do same in Huawei AppGallery?

6条回答
  •  无人及你
    2020-12-14 11:15

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

提交回复
热议问题