Reputation: 3621
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?
Upvotes: 38
Views: 17473
Reputation: 9052
Opening your app in the Huawei App Gallery is similar to opening Google Play Store:
Huawei App Gallery:
market://
or appmarket://
com.huawei.appmarket
vs. Google Play Store:
market://
com.android.vending
Here is a snippet for the Huawei App Gallery:
private void startHuaweiAppGallery() {
Uri detailsUri = Uri.parse("market://details?id=" + getPackageName());
Intent intent = new Intent(Intent.ACTION_VIEW, detailsUri);
List<ResolveInfo> otherApps = getPackageManager().queryIntentActivities(
intent,
PackageManager.GET_ACTIVITIES
);
for (ResolveInfo app : otherApps) {
String packageName = app.activityInfo.applicationInfo.packageName;
if (!packageName.equals("com.huawei.appmarket")) {
continue;
}
intent.addFlags(
Intent.FLAG_ACTIVITY_NEW_TASK |
Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED |
Intent.FLAG_ACTIVITY_CLEAR_TOP
);
intent.setComponent(
new ComponentName(packageName, app.activityInfo.name)
);
startActivity(intent);
return;
}
//ex. https://appgallery.huawei.com/app/C100864605
String huaweiAppID = "100864605";
Uri appUri = Uri.parse(
"https://appgallery.huawei.com/app/C" + huaweiAppID
);
intent = new Intent(Intent.ACTION_VIEW, appUri);
startActivity(intent);
}
Here is the snippet for Google Play:
private void startGooglePlay() {
Uri detailsUri = Uri.parse("market://details?id=" + getPackageName());
Intent intent = new Intent(Intent.ACTION_VIEW, detailsUri);
List<ResolveInfo> otherApps = getPackageManager().queryIntentActivities(
intent,
PackageManager.GET_ACTIVITIES
);
for (ResolveInfo app : otherApps) {
String packageName = app.activityInfo.applicationInfo.packageName;
if (!packageName.equals("com.android.vending")) {
continue;
}
intent.addFlags(
Intent.FLAG_ACTIVITY_NEW_TASK |
Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED |
Intent.FLAG_ACTIVITY_CLEAR_TOP
);
intent.setComponent(
new ComponentName(packageName, app.activityInfo.name)
);
startActivity(intent);
return;
}
//Google Play N/A. Open app link in browser.
Uri appUri = Uri.parse(
"https://play.google.com/store/apps/details?id=" + getPackageName()
);
intent = new Intent(Intent.ACTION_VIEW, appUri);
startActivity(intent);
}
Here is the snippet to allow the user to pick Any Available Store on the device:
private void startAnyStore() {
Uri detailsUri = Uri.parse("market://details?id=" + getPackageName());
Intent intent = new Intent(Intent.ACTION_VIEW, detailsUri);
intent.addFlags(
Intent.FLAG_ACTIVITY_NEW_TASK |
Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED |
Intent.FLAG_ACTIVITY_CLEAR_TOP
);
startActivity(intent);
}
Upvotes: 49
Reputation: 902
I think the shortest and easiest one would be running this simple link: https://appgallery.cloud.huawei.com/ag/n/app/<YOUR_APP_ID>
.
No need to config anything and the rest will handled by Huawei automatically.
How to get YOUR_APP_ID?
C5683
Upvotes: 0
Reputation: 888
It seems Huawei App Gallery can now open the details page with the same URI that works for Google Play: market://details?id=<applicationId>
I just tried it out on AppGallery v11.1.2.304 with an applicationId that exists on both stores:
adb shell am start -a "android.intent.action.VIEW" -d "market://details?id=busu.blackscreenbatterysaver"
Upvotes: 5
Reputation: 101
If your application has already released on the Huawei Appgallery, then you can use this url to open the application directly.
https://appgallery.huawei.com/#/app/C27162
You can replace the appid with your own appid .
https://appgallery.cloud.huawei.com/appDetail?pkgName=com.huawei.appmarket
You can replace the package name with your own package name.
Wish it can be helpful.
Upvotes: 7
Reputation: 49
Launch Play Store/AppGallery via package name.
private boolean openInStore(String uri){
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED | Intent.FLAG_ACTIVITY_CLEAR_TOP);
try {
startActivity(Intent.createChooser(intent,getString(R.string.open_with)));
return true;
} catch (ActivityNotFoundException anfe) {
return false;
}
}
private void startOpenInStore() {
String playStoreScheme = "market://details?id=", huaweiScheme = "appmarket://details?id=";
if (!openInStore(playStoreScheme+getPackageName())) {
if (!openInStore(huaweiScheme + getPackageName())) {
openInStore("https://play.google.com/store/apps/details?id=" + getPackageName());
}
}
}
Upvotes: 1
Reputation: 1
Here is how to start App Gallery directly:
Intent intent = new Intent(Intent.ACTION_VIEW);
Uri.Builder uriBuilder = Uri.parse("https://appgallery.cloud.huawei.com/ag").buildUpon();
intent.setData(uriBuilder.build());
intent.setPackage("com.huawei.appmarket");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
Upvotes: 0
Reputation: 2025
As for how to link to an app detail page or an app list page on AppGallery:
ā¢ The link that you referred: here is to an app detail page. Huawei does support the app detail page using badge service on AppGallery. In other words, you can replace the Google link with Huawei badge link. You can get the detail information of badge service at here
ā¢ For app listing on AppGallery, Huawei has not opened the ability to all developers except some invited developers.
Hope this help and let me know if any questions.
Upvotes: 0
Reputation: 33997
You can use the badge service provided by HUAWEI AppGallery to promote your app, including preparing materials for making a badge, configuring an app link, and obtaining referrer statistics. With the service, you can efficiently collect statistics on app downloads in AppGallery and provide the silent installation service for users to improve the promotion effect.
When a user taps your badge in a channel, the user is redirected to your app details page on AppGallery. The user can tap Install to automatically download and install your app.
Upvotes: 2
Reputation: 81
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
Upvotes: 8
Reputation: 803
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");
Upvotes: 4
Reputation: 7
Ok bro. You can use the package name. com.huawei.appmarket and use Intent. There is a similar question here. Launch an application from another application on Android
Good luck for whatever you doing š
Upvotes: -2