|
@@ -9,12 +9,14 @@ import android.os.Environment;
|
|
|
import android.os.StatFs;
|
|
import android.os.StatFs;
|
|
|
import android.text.TextUtils;
|
|
import android.text.TextUtils;
|
|
|
import android.util.DisplayMetrics;
|
|
import android.util.DisplayMetrics;
|
|
|
|
|
+import android.util.Log;
|
|
|
import android.view.WindowManager;
|
|
import android.view.WindowManager;
|
|
|
|
|
|
|
|
import com.android.volleyplus.Response;
|
|
import com.android.volleyplus.Response;
|
|
|
import com.android.volleyplus.VolleyError;
|
|
import com.android.volleyplus.VolleyError;
|
|
|
import com.kfzs.appstore.utils.restful.KFZSRestfulError;
|
|
import com.kfzs.appstore.utils.restful.KFZSRestfulError;
|
|
|
import com.kfzs.appstore.utils.restful.KFZSRestfulErrorCallBack;
|
|
import com.kfzs.appstore.utils.restful.KFZSRestfulErrorCallBack;
|
|
|
|
|
+import com.kfzs.duanduan.view.DialogStorageLow;
|
|
|
import com.sheep.jiuyan.samllsheep.utils.G;
|
|
import com.sheep.jiuyan.samllsheep.utils.G;
|
|
|
import com.kfzs.duanduan.KFZSApp;
|
|
import com.kfzs.duanduan.KFZSApp;
|
|
|
|
|
|
|
@@ -136,6 +138,59 @@ public class HelperUtils {
|
|
|
}
|
|
}
|
|
|
return percent;
|
|
return percent;
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 判断sd卡是否可用
|
|
|
|
|
+ * return true 可用 false 不可用
|
|
|
|
|
+ */
|
|
|
|
|
+ public static boolean isSDCardEnable(){
|
|
|
|
|
+ return Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 获取SD卡剩余空间
|
|
|
|
|
+ *
|
|
|
|
|
+ * @return SD卡剩余空间
|
|
|
|
|
+ */
|
|
|
|
|
+ public static long getSdkFreeSpace(){
|
|
|
|
|
+ try{
|
|
|
|
|
+ if(!isSDCardEnable()){
|
|
|
|
|
+ return 0;
|
|
|
|
|
+ }//获取SDCard根目录
|
|
|
|
|
+ File path = Environment.getExternalStorageDirectory();
|
|
|
|
|
+ StatFs statFs = new StatFs(path.getPath());
|
|
|
|
|
+ long blockSize, availableBlocks;
|
|
|
|
|
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
|
|
|
|
|
+ availableBlocks = statFs.getAvailableBlocksLong();
|
|
|
|
|
+ blockSize = statFs.getBlockSizeLong();
|
|
|
|
|
+ } else {
|
|
|
|
|
+ availableBlocks = statFs.getAvailableBlocks();
|
|
|
|
|
+ blockSize = statFs.getBlockSize();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return availableBlocks * blockSize;
|
|
|
|
|
+ }catch (Exception e){
|
|
|
|
|
+ e.printStackTrace();
|
|
|
|
|
+ return 0;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 判断文件空间大小
|
|
|
|
|
+ */
|
|
|
|
|
+ public static void showInstallToast(Context context, File file){
|
|
|
|
|
+ try{
|
|
|
|
|
+ if (0 <= file.length() && (
|
|
|
|
|
+ file.length() > getFreeSpaceB() / 2
|
|
|
|
|
+ && file.length() > getSdkFreeSpace() / 2
|
|
|
|
|
+ )) {
|
|
|
|
|
+ DialogStorageLow.showPopupWindow(context);
|
|
|
|
|
+ }
|
|
|
|
|
+ }catch (Exception e){
|
|
|
|
|
+ e.printStackTrace();
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|