recherche

Maison  >  Questions et réponses  >  le corps du texte

android - 手机已经安装的软件但apk被手动删除了、请问有办法能找回apk来吗?

手机已经安装的软件但apk被手动删除了、请问有办法能找回apk来吗?

高洛峰高洛峰2772 Il y a quelques jours1042

répondre à tous(2)je répondrai

  • PHPz

    PHPz2017-04-17 17:20:00

    可以获取当前安装应用的APK

    public static String backupApplication(Context context,String packageName, String dest) {
        if (packageName == null || packageName.length() == 0
    
        || dest == null || dest.length() == 0) {
            return "illegal parameters";
        }
        PackageManager pm = context.getPackageManager();   
        PackageInfo pi = null;
        try {
            pi = pm.getPackageInfo(context.getPackageName(), 0);
        } catch (NameNotFoundException e1) {
            e1.printStackTrace();
        }   
        // check file /data/app/appId-1.apk exists
        Log.i("",""+pi.applicationInfo.sourceDir);
        String apkPath = "/data/app/" + packageName + "-1.apk";
    
        File apkFile = new File(apkPath);
    
        if (!apkFile.exists()) {
            apkFile=new File(pi.applicationInfo.sourceDir);
            if(!apkFile.exists()){
                return apkPath + " doesn't exist!";
            }
        }
    
        FileInputStream in;
    
        try {
            in = new FileInputStream(apkFile);
    
        } catch (FileNotFoundException e) {
            e.printStackTrace();
            return e.getMessage();
        }
    
        // create dest folder if necessary
    
        int i = dest.lastIndexOf('/');
    
        if (i != -1) {
            File dirs = new File(dest.substring(0, i));
            dirs.mkdirs();
        }
    
        // do file copy operation
    
        byte[] c = new byte[1024];
    
        int slen;
    
        FileOutputStream out = null;
    
        try {
            out = new FileOutputStream(dest);
    
            while ((slen = in.read(c, 0, c.length)) != -1)
                out.write(c, 0, slen);
        } catch (IOException e) {
            e.printStackTrace();
            return e.getMessage();
        } finally {
            if (out != null)
                try {
                    out.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            try {
                in.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return "success";
    }
    

    répondre
    0
  • 天蓬老师

    天蓬老师2017-04-17 17:20:00

    如果确定手机上的apk已经删除了那么只能靠工具来还原组装一个apk出来(apk本身是一个程序和资源的压缩包,安装的过程就是一个解压和注册的过程)。
    你可以试试apk share这个软件,运行软件后选择app然后点backup就会还原apk文件并放在你的sdcard里。

    répondre
    0
  • Annulerrépondre