【问题标题】:install apk from another android app without using sd card在不使用 sd 卡的情况下从另一个 android 应用程序安装 apk
【发布时间】:2011-09-07 08:52:46
【问题描述】:

我能够下载一个 apk 文件并将其存储在我的 /data/data/com.android.myApp/anotherApp.apk 中。我想知道是否有一种方法可以从另一个应用程序安装此文件。我目前正在使用:

意图意图 = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(Uri.parse(filepath), "application/vnd.android.package-archive"); 开始活动(意图);

这是我的清单文件:

当我运行这个。它给了我“解析错误:解析包时出现问题”。我不知道问题是什么? 1)我需要将应用程序存储在SD卡中吗?我不想那样做 2)权限问题? 3) 正在安装损坏的包?

【问题讨论】:

    标签: android installation apk package-managers


    【解决方案1】:

    您需要在filepath 前面加上file://

    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.setDataAndType(Uri.parse("file://" + filepath), "application/vnd.android.package-archive"); startActivity(intent);
    

    【讨论】:

      【解决方案2】:

      通常,当您在应用沙箱中保存文件时,它们会保存在“文件”文件夹下。所以你的完整路径应该是:

      /data/data/com.android.myApp/files/anotherApp.apk 
      

      如果您正在使用模拟器,您可以执行 adb shell ls 来确认文件是否确实存在:

      adb shell "ls /data/data/com.android.myApp/files"
      

      【讨论】:

      • 文件在那里。我正在使用 Eclipse,我通过 DDMS 文件系统进行了查找。
      • 文件存在。我担心 /data/data 目录已读取 priveldges
      • 你能展示你构建文件路径变量的代码吗?在您的问题中,您似乎错过了“/files”元素。
      • 我在这里遇到了同样的事情。如果我尝试从 SD 卡安装传递文件,则一切正常。但是,如果我从“内部存储器”中的任何其他地方尝试,我会得到与描述相同的错误。你解决了吗?如果是这样,请告诉我。
      • 只有在模拟器上运行时,才能通过 adb 看到目录条目。在真实设备上,您根本看不到任何东西。
      【解决方案3】:

      试试这个朋友...

      Intent intent = new Intent(Intent.ACTION_VIEW);
      intent.setDataAndType(Uri.fromFile(new File(path+"/yourapp.apk")), application/vnd.android.package-archive");
      startActivity(intent);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-12
        • 1970-01-01
        • 2012-01-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多