我安装了一个apk,该apk保存在/data/data/package_name/files
目录中,代码如下:
Uri uri = Uri.fromFile(new File(apkSavingPath));
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(uri,"application/vnd.android.package-archive");
mContext.startActivity(intent);
我希望它返回一个结果代码告诉我apk是否安装成功,我尝试了startActivityForResult
的方法,但它没有用。
在onActivityResult
的方法上,无论apk安装成功与否,它的resultCode始终为0(zero)
。我能得到这样的结果代码吗?
答案 0 :(得分:5)
试试这个。
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType("ApkFilePath...","application/vnd.android.package-archive");
activity.startActivityForResult(intent,5000);
在AndroidManifest.xml上添加接收器
<receiver android:name=".PackageReceiver" android:enabled="true" android:exported="true">
<intent-filter>
<action android:name="android.intent.action.PACKAGE_ADDED" />
<action android:name="android.intent.action.PACKAGE_CHANGED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="package" />
</intent-filter>
</receiver>
然后在安装新包时调用此类:
public class PackageReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// handle install event here
}
}