由于这个令人烦恼的Android限制,我需要用户重新安装我的应用程序,以便其他应用程序可以检测到清单权限。
这对用户来说已经很烦人了,而且我无法找到一种方法从存储在/data/app中的apk中重新安装我的应用程序,因此我必须在触发通常的安装意图之前将相同版本下载到存储卡中。
我迫切希望有人告诉我我漏了什么显而易见的东西!我一片空白...
提前感谢。
如果您希望看到该问题得到解决,请为此问题加星!谢谢。
编辑:请使用以下代码启动安装对话框,考虑@hackbod的评论。
这对用户来说已经很烦人了,而且我无法找到一种方法从存储在/data/app中的apk中重新安装我的应用程序,因此我必须在触发通常的安装意图之前将相同版本下载到存储卡中。
我迫切希望有人告诉我我漏了什么显而易见的东西!我一片空白...
提前感谢。
如果您希望看到该问题得到解决,请为此问题加星!谢谢。
编辑:请使用以下代码启动安装对话框,考虑@hackbod的评论。
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File(this.getApplicationInfo().sourceDir)),
"application/vnd.android.package-archive");
startActivity(intent);
在我的Jelly Bean设备上,这会呈现两个选项:软件包安装器和验证并安装。我不知道后者是否能够解决以下问题:
- 通过这种方式安装应用程序可能会从Play商店中删除其所有权
我的应用程序是免费的,因此我无法测试以下付费问题:
- 请注意,如果您的应用程序被前向锁定(这对所有JB或更高版本的付费应用程序都是无法避免的,因为应用程序已加密),则此方法将无法工作,因为其他人无法读取您的应用程序可执行文件
尽管hackbod最后使用了“可以被其他人读取”的话语,这表明如果您通过自己的代码执行此操作,对于您自己的应用程序而言,它是可读取的。如果您能够测试并且我错了,请纠正我。