【发布时间】:2013-09-16 03:03:58
【问题描述】:
我正在尝试从 Google Play 安装应用程序。我可以理解,在打开 Google Play 商店 URL 时,它会打开 Google Play,当我按下后退按钮时,活动会继续。
Intent marketIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(appURL));
marketIntent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
startActivity(marketIntent);
当我返回活动时,我尝试调用此onResume() 来检查应用程序是否已安装,但收到错误消息:
@Override
protected void onResume() {
super.onResume();
boolean installed = false;
while (!installed) {
installed = appInstalledOrNot(APPPACKAGE);
if (installed) {
Toast.makeText(this, "App installed", Toast.LENGTH_SHORT).show();
}
}
}
private boolean appInstalledOrNot(String uri) {
PackageManager pm = getPackageManager();
boolean app_installed = false;
try {
pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES);
app_installed = true;
}
catch (PackageManager.NameNotFoundException e) {
app_installed = false;
}
return app_installed ;
}
错误如下:
E/AndroidRuntime(796): java.lang.RuntimeException: 无法启动 活动 组件信息{com.example.appinstaller/com.example.appinstaller.MainActivity}: android.content.ActivityNotFoundException: 未找到处理 Intent { act=android.intent.action.VIEW 的 Activity dat=market://details?id=com.package.name flg=0x40080000 }
我猜活动是onPause()。有没有更好的方法来实现它?我正在尝试检查应用是否已完成安装。
【问题讨论】:
-
@SiddharthanAsokan 如果我理解正确,你在这里想要实现的是,启动你的应用程序 -> 去玩商店 -> 点击安装 -> 回到你自己的活动 -> 开始新的已安装的应用程序.. 对吗?
-
不,回到我最初打开的应用程序。我需要使用 PackageManager 获取有关已安装应用程序的一些信息。此信息检索在我从使用打开 Web url 的初始安装应用程序后开始。
标签: android android-intent google-play