通过我的应用程序安装apk

时间:2011-08-11 18:18:14

标签: android

一旦我使用下面的功能

,我就会出现解析错误
public void installFile()
{
    String path = "/data/data/com.utsc.smartdictate/";
    String filename = "smartdictate.apk";
    File file = new File(path + filename);
    if(file.exists())
    {
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive");
        startActivity(intent);
    }
}

我尝试从模拟器中拉出apk文件并尝试安装它,以测试文件是否已损坏,但是它安装了!所以我不知道为什么会失败。

编辑:我在清单

中添加了“android.permission.INSTALL_PACKAGES”权限

1 个答案:

答案 0 :(得分:2)

最有可能的是,安装程序无法读取该文件。默认情况下,其他进程无法读取应用程序本地文件存储中的文件。您需要将文件存储在外部存储上,或使用openFileOutput()MODE_WORLD_READABLE创建文件,或者创建内容提供商来提供该文件。

此外:

  • 永远不要硬连线。使用getFilesDir()获取应用程序本地文件存储的根目录
  • 不要将文件存储在/data/data/com.utsc.smartdictate/中,而是存储在/data/data/com.utsc.smartdictate/files中,这是您从getFilesDir()获得的文件
  • 不要连接字符串以获得完整路径 - 请使用正确的File构造函数