Check if application is installed - Android

Check if application is installed - Android

I'm trying to install apps from the google play. I can understand that on
opening the google play store url, it opens the google play and when i
press the back button, the activity resumes.
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);
When I went back to the activity, I tried calling this onResume() to check
if the app is installed, but i receive an error:
@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 ;
}
The error is as follows:
E/AndroidRuntime(796): java.lang.RuntimeException: Unable to start
activity
ComponentInfo{com.example.appinstaller/com.example.appinstaller.MainActivity}:
android.content.ActivityNotFoundException:
No Activity found to handle Intent { act=android.intent.action.VIEW
dat=market://details?id=com.package.name flg=0x40080000 }
I guess the activity is onPause(). Is there a better way to implement? I'm
trying to check if the app has finished installing.