1

我试图写一些内部存储的东西。打开一个目录..和文件输出流。我设法写了一个文件,但是当我尝试使用这个文件并得到一个错误时(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"/>

4

2 回答 2

0

如果您通过外部应用程序打开文件,它无法访问您的文件。你也使用不同的变量: intentintentGuncelleintent.setDataAndType(Uri.fromFile(new File(mydir.getAbsolutePath()+"/incomingplus.apk")), "application/vnd.android.package-archive"); startActivity(intentGuncelle);// Error is here!

于 2012-09-04T10:01:00.087 回答
0

您是否在清单中包含了权限?

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
于 2012-09-04T10:01:25.377 回答