Android /data/data/app_file/目录下面安装apk无权限问题

时间:2024-02-25 11:48:23

当识别SDCard的时候

String filePath = null;  
        String state = Environment.getExternalStorageState();  
        if (state.equalsIgnoreCase(Environment.MEDIA_MOUNTED)) {//当SDCard挂载时   
              
        }else{//当SDCard没有挂载时   
              
        }  

如果没有就下到了/data/data/app_file/目录下面去了,但安装涉及到权限问题:

try {  
            Process p = Runtime.getRuntime().exec("chmod 755 " + file);  
            int status = p.waitFor();  
            if (status == 0) {  
//              Toast.makeText(context, "权限修改成功", Toast.LENGTH_SHORT).show();  
                return true;  
            }else{  
//              Toast.makeText(context, "权限修改失败", Toast.LENGTH_SHORT).show();  
                return false;  
            }  
        } catch (IOException e) {  
            e.printStackTrace();  
            return false;  
        } catch (InterruptedException e) {  
            e.printStackTrace();  
            return false;  
        }  
      

chmod是Linux下设置文件权限的命令,后面的数字表示不同用户或用户组的权限。 

一般是三个数字: 第一个数字表示文件所有者的权限 第二个数字表示与文件所有者同属一个用户组的其他用户的权限 第三个数字表示其它用户组的权限。 

 权限分为三种:读(r=4),写(w=2),执行(x=1)  综合起来还有可读可执行(rx=5=4+1)、可读可写(rw=6=4+2)、可读可写可执行(rwx=7=4+2+1)。

  所以,chmod 755 设置用户的权限为: 

1.文件所有者可读可写可执行                                   --7

2.与文件所有者同属一个用户组的其他用户可读可执行 --5 

3.其它用户组可读可执行                                        --5