我试着编写内部存储器的东西。打开一个dir ..和fileoutputstream.I设法写一个文件,但是当我尝试使用这个文件并得到一个错误时(Logcat没有错误。当“Startactivity”时部分运行打开一个对话框。在Android设备上的对话框中写“有一个数据包解析错误”。实际上该文件存在但我不使用该文件。我的目标是startactivity:打开一个将apk文件加载到android设备的意图。
我的内部存储路径
mydir = getDir("mydir", MODE_WORLD_READABLE);
filewithmydir = new File(mydir,fileName+".apk");
fileOutPutStream = new FileOutputStream(filewithmydir);
使用输入流的进度条向文件写入内容(此部分已成功完成)
byte[] data = new byte[1024];
long total = 0;
int count;
while ((count = inputStream.read(data)) != -1) {
total += count;
publishProgress((int) total * 100 / fileLength);
fileOutPutStream.write(data, 0, count);
}
使用文件的部分
intent.setDataAndType(Uri.fromFile(new File(mydir.getAbsolutePath()+"/incomingplus.apk")), "application/vnd.android.package-archive");
startActivity(intent);// Error is here!
我的权限
<uses-permission android:name="android.permission.INSTALL_PACKAGES"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
答案 0 :(得分:0)
如果您通过外部应用程序打开文件,则无法访问您的文件。
您还可以使用不同的变量:intent
和intentGuncelle
intent.setDataAndType(Uri.fromFile(new File(mydir.getAbsolutePath()+"/incomingplus.apk")), "application/vnd.android.package-archive");
startActivity(intentGuncelle);// Error is here!
答案 1 :(得分:0)
您是否已将权限包含在清单中?
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />