前提条件是,电视机没有外置SD卡。这时候下载应用 要存储在内置的空间里。可以写入进入却无法,打开。打开报解析包出现问题。
最后的解决方法是:内置空间没有权限读取。
Android4.4

//当你下载完成后,并保存在指定的路径。这个路径可以写入,却无法读取 //先给权限  setUpdateDir(new File(getApplicationContext().getDir("app", MODE_WORLD_WRITEABLE) + "/" + "SPA")); //再安装  installApp(getApplicationContext().getDir("app", MODE_WORLD_WRITEABLE) + "/" + "SPA");/**     * 内置存储中给指定的文件权限。     *     * @param updateDir 文件路径位置     */    private void setUpdateDir(File updateDir) {        try {            Process p = Runtime.getRuntime().exec("chmod 777 " + updateDir);            int status = p.waitFor();        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();        } catch (InterruptedException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    } //根据指定路径安装APP    private void installApp(String path) {        Intent intent = new Intent(Intent.ACTION_VIEW);        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);        intent.setDataAndType(Uri.parse("file://" + path),                "application/vnd.android.package-archive");        startActivity(intent);    }

例子:
使用okgo下载

  /**     * 下载第三方     * @param url      APP路径     * @param     */    public void downLoadApp(String url) {        OkGo.get(url)                .tag(this)                .execute(new FileCallback(getApplicationContext().getDir("app", MODE_WORLD_WRITEABLE)+"/", "dsf") {                    @Override                    public void onStart(Request request) {                        super.onStart(request);                        showDialog(getResources().getString(R.string.loading_string));                    }                    @Override                    public void onSuccess(Response response) {//sdcard/download/ 默认下载路径                        setUpdateDir(new File(getApplicationContext().getDir("app", MODE_WORLD_WRITEABLE) + "/" +"dsf"));//先给权限                        //再安装                        installApp(getApplicationContext().getDir("app", MODE_WORLD_WRITEABLE) + "/"  + "dsf" );                        hud.dismiss();//                        startActivity(intent);//下载完后 启动应用。                    }                    @Override                    public void downloadProgress(Progress progress) {                        super.downloadProgress(progress);//                            dialog.setPRo((int) progress.fraction);                    }                    @Override public void onFinish() {                        super.onFinish();                    }                });    }

更多相关文章

  1. 一款常用的 Squid 日志分析工具
  2. GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
  3. RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
  4. Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
  5. Android之Menu基本使用(显示图标icon)
  6. 【Sublinux】Station P1在Android上使用容器Docker
  7. 用百度API高仿微信定位demo
  8. 保护你的隐私,五种控制Android应用的权限的方法
  9. Android(安卓)so lib库远程http下载和动态注册

随机推荐

  1. 一个 Android(安卓)简易的新闻客户端
  2. Android的Handler总结(1)
  3. 解决 “android New package not yet reg
  4. Android四大组件之 服务Service
  5. Android(安卓)Studio 从入门到精通(Windo
  6. Android(安卓)NullPointerException解决
  7. Android使用BitmapFactory.Options解决加
  8. 【Android】TextView动态设置Drawable资
  9. Android组件化导致的代码不生效
  10. 简单实现Android(安卓)AudioReccord录音