我在Play商店中有两个非常相似的新闻应用程序,我们称它们为应用程序A和应用程序B(B与A类似,但具有高级功能)。现在,我希望所有应用程序A的用户无缝迁移到应用程序B。为此,我希望使用标题为“立即升级到B”的按钮将应用程序更新推送到A。轻按按钮时,我想做两件事。一种是检查是否未安装B,如果不是,我想开始下载应用B,然后继续安装它。一旦安装了应用程序或已经安装了该应用程序,我希望将登录信息传递给应用程序B并打开其主页(可能使用意图)。第二个是删除迁移到B的应用程序A。如何尽可能无缝地完成此操作,以便使应用程序A的用户有机会开始使用性能更好的应用程序B,并且转换会在幕后自动进行? 我浏览了几篇有关下载自定义apks,然后以编程方式安装它的文章。因此,大概我可以做的是从服务器下载B的apk,然后在用户授予INSTALL_PACKAGES权限后安装B。这是解决这个问题的正确方法吗?
答案 0 :(得分:0)
一旦用户单击安装按钮。检查是否安装了应用B,否则您可以将其定向到应用B的Playstore,使用以下代码即可实现。
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Add respective layout
setContentView(R.layout.main_activity);
// Use package name which we want to check
boolean isAppInstalled = appInstalledOrNot("Package name of your App B");
if(isAppInstalled) {
//This intent will help you to launch if the package is already installed
Intent LaunchIntent = getPackageManager()
.getLaunchIntentForPackage("Package name of your App B");
startActivity(LaunchIntent);
Log.i("Application is already installed.");
} else {
// Redirect to play store
Intent i = new Intent(android.content.Intent.ACTION_VIEW);
i.setData(Uri.parse("https://play.google.com/store/apps/details?id=Package name of your App B"));
startActivity(i);.
Log.i("Application is not currently installed.");
}
}
private boolean appInstalledOrNot(String uri) {
PackageManager pm = getPackageManager();
try {
pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES);
return true;
} catch (PackageManager.NameNotFoundException e) {
}
return false;
}}
希望我给您一个解决方案:)