判断obb文件是否存在

作者:追风剑情 发布于:2015-12-25 17:16 分类:Android

一、配置权限

  1. <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
  2. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
  3. <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>

二、判断方法

  1. /**
  2. * 判断main.versionCode.packageName.obb是否存在
  3. * @return
  4. */
  5. public boolean hasMainOBB(){
  6. try {
  7. String externalStorageState = Environment.getExternalStorageState();
  8. if(!externalStorageState.equals(Environment.MEDIA_MOUNTED)){
  9. Log.e(TAG, "对扩展SD卡无读写权限 externalStorageState="+externalStorageState);
  10. return false;
  11. }
  12. PackageInfo pi = this.getPackageManager().getPackageInfo(this.getPackageName(), 0);
  13. int versionCode = pi.versionCode;
  14. String packageName = pi.packageName;
  15. String obbPath = "Android/obb";
  16. File externalStorageDirectory = Environment.getExternalStorageDirectory();
  17. String root = externalStorageDirectory.getPath();
  18. String expansionFilePath = String.format("%s/%s/%s", root, obbPath, packageName);
  19. String mainObbName = String.format("main.%d.%s.obb", versionCode, packageName);
  20. String mainObbFilePath = String.format("%s/%s", expansionFilePath, mainObbName);
  21. Log.d(TAG, mainObbFilePath);
  22. File obbFile = new File(mainObbFilePath);
  23. return obbFile.exists();
  24. } catch (NameNotFoundException e) {
  25. Log.e(TAG, e.getLocalizedMessage());
  26. return false;
  27. }
  28. }

 

标签: Android

Powered by emlog  蜀ICP备18021003号-1   sitemap

川公网安备 51019002001593号