所以我在处理一场冲突。我正在尝试从我的应用程序中启动google商店,我已经实现了这个功能。但是,我只能对URI中的包值进行硬编码,这样它才能工作。我需要一种可以使用getPackageName()的方法,它从google商店返回正确的一个。
在URI中工作的Google包名称:org.horaapps.leafpic
包名getPackageName()返回:org.horaapps.leafpic.debug
下面是启动google的代码:
//Launches to the app in google play, if the package name ever does change you can do this
//by changing the org section of the URI below. -beastlyCoder
Uri uri = Uri.parse("market://details?id=org.horaapps.leafpic"); //dont want hardcoded value
Log.d("tag", getApplicationContext().getPackageName());
Intent myAppLinkToMarket = new Intent(Intent.ACTION_VIEW, uri);
try
{
startActivity(myAppLinkToMarket);
} catch (ActivityNotFoundException e)
{
Toast.makeText(this, " unable to find market app", Toast.LENGTH_SHORT);
}如何在结束时删除调试,以便两个包能够对应(注意:这是一个开放源码项目,所以我不希望对代码进行任何剧烈的更改,比如更改包结构等等)。
发布于 2018-04-20 00:41:46
将构建变量设置为发布,并将其添加到应用程序级别的build.gradle中
buildTypes {
release {
applicationId "org.horaapps.leafpic"
}
debug {
applicationIdSuffix ""
}
}https://stackoverflow.com/questions/49932153
复制相似问题