如何解决在Android上以编程方式安装APK
|| 我一直在尝试让Android应用程序以编程方式在sdcard上安装APK,但遇到了一些麻烦。 这就是我的做法:Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(\"ApkFilePath...\",\"application/vnd.android.package-archive\");
activity.startActivityForResult(intent,5000);
现在可以正常运行了,它带来了程序包管理器,当管理器完成安装APK时,我可以控制要做什么。
但是我遇到的问题是,如果在安装结束时用户单击\“ Open \”而不是\“ Done \”,则不会调用\“ OnActivityResult \”方法,因为该管理器仍然存在....这就提出了另一个对系统的其他要求的问题。
有没有办法知道用户何时在包管理器的末尾选择了“打开”,还是有办法强制管理器仅显示我要显示的按钮?
确实可以使用帮助,我到处搜索并且似乎没有找到解决方案
解决方法
如果安装了新应用程序,则可以在
AndroidManifest.xml
中添加接收器以收听广播。
像这样:
<receiver android:name=\".PackageReceiver\">
<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
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。