我安装了一个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);
Run Code Online (Sandbox Code Playgroud)
我希望它返回一个结果代码来告诉我apk是否安装成功,并且我已经尝试了方法startActivityForResult,但它没有用.
在方法上onActivityResult,它的resultCode始终0(zero)是否成功安装了apk.我能得到这样的结果代码吗?
试试这个.
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType("ApkFilePath...","application/vnd.android.package-archive");
activity.startActivityForResult(intent,5000);
Run Code Online (Sandbox Code Playgroud)
在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>
Run Code Online (Sandbox Code Playgroud)
然后在安装新包时调用此类:
public class PackageReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// handle install event here
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2866 次 |
| 最近记录: |