Android内部存储错误

时间:2012-09-04 09:54:26

标签: android storage internal

我试着编写内部存储器的东西。打开一个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"/>

2 个答案:

答案 0 :(得分:0)

如果您通过外部应用程序打开文件,则无法访问您的文件。 您还可以使用不同的变量:intentintentGuncelle 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" />