的Bonjour
我想为Android创建一个简单的市场应用程序,但我面临一个恼人的问题。
安装流程如下:
1-在应用程序上下文中下载apk文件:
InputStream input = new BufferedInputStream(url.openStream()) ;
OutputStream output = openFileOutput("xx.apk", Activity.MODE_WORLD_READABLE);
byte data[] = new byte[1024];
while ((count = input.read(data)) != -1 && statusDownload ) {
output.write(data, 0, count);
}
output.flush();
output.close();
input.close();
2-下载完成后:
promptInstall = new Intent(Intent.ACTION_VIEW);
File fileApk = new File (getFilesDir() + "/xx.apk");
promptInstall.setDataAndType(Uri.fromFile(fileApk) , Consts.APK_FILE_INSTALL_TYPE);
startActivityForResult(promptInstall,654);
3-安装(或取消)后,apk文件被删除:
File fileApk = new File (a.getFilesDir() + "/xx.apk" );
fileApk.delete();
为了安装apk文件,它必须是“World Readable”,这意味着每个人都可以在下载文件后(和安装之前)获取apk文件。
有谁知道如何设置好的权限以避免外部下载?
感谢您阅读!
答案 0 :(得分:1)
有谁知道如何设置好的权限以避免外部下载?
您已拥有“良好的权限”。安装程序在与您的安装程序不同的进程中运行,因此必须能够读取该文件。由于您无法仅为此安装程序授予权限,因此您必须为所有可能的进程授予读取权限。
对于大多数情况,我们会使用ContentProvider
来解决此限制。唉,at least as of a year ago, the installer did not support content://
Uri
values。