Reputation:
Im trying to download and install an apk file programmatically.
Following is my code,
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
Uri apkUri = FileProvider.getUriForFile(MainActivity.activity, BuildConfig.APPLICATION_ID + ".provider", new File(mainActivity.destination));
Intent intent = new Intent(Intent.ACTION_INSTALL_PACKAGE);
intent.setData(apkUri);
intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
activity.startActivity(intent);
} else {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File(mainActivity.destination)), "application/vnd.android.package-archive");
mainActivity.context.startActivity(intent);
}
But Im getting the following error,
Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.XmlResourceParser android.content.pm.ProviderInfo.loadXmlMetaData(android.content.pm.PackageManager, java.lang.String)' on a null object reference
The error points to the line
Intent intent = new Intent(Intent.ACTION_INSTALL_PACKAGE);
How can I be able to sort this out?
Upvotes: 0
Views: 286
Reputation: 152
Uri apkUri = FileProvider.getUriForFile(MainActivity.activity, BuildConfig.APPLICATION_ID + ".provider", new File(mainActivity.destination));
.fileprovider
Upvotes: 1