content: package com.example.admin.mybledemo;
  
  import android.content.Context;
  import android.content.Intent;
  import android.content.pm.PackageManager;
  import android.content.pm.ResolveInfo;
  import android.net.Uri;
  import android.os.Build;
  import androidx.core.content.FileProvider;
  
  import java.io.File;
  import java.util.List;
  
  /**
   * description $desc$
   * created by jerry on 2019/5/8.
   */
  public class FileProvider7 {
      public static Uri getUriForFile(Context context, File file) {
          Uri fileUri = null;
          if (Build.VERSION.SDK_INT >= 24) {
              fileUri = getUriForFile24(context, file);
          } else {
              fileUri = Uri.fromFile(file);
          }
          return fileUri;
      }
  
  
  
      public static Uri getUriForFile24(Context context, File file) {
          Uri fileUri = FileProvider.getUriForFile(context,
                  context.getPackageName() + ".android7.fileprovider",
  //                context.getPackageName() + ".com.pgyer.provider",
                  file);
          return fileUri;
      }
  
  
      public static void setIntentDataAndType(Context context,
                                              Intent intent,
                                              String type,
                                              File file,
                                              boolean writeAble) {
          if (Build.VERSION.SDK_INT >= 24) {
              intent.setDataAndType(getUriForFile(context, file), type);
              intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
              if (writeAble) {
                  intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
              }
          } else {
              intent.setDataAndType(Uri.fromFile(file), type);
          }
      }
  
      public static void setIntentData(Context context,
                                       Intent intent,
                                       File file,
                                       boolean writeAble) {
          if (Build.VERSION.SDK_INT >= 24) {
              intent.setData(getUriForFile(context, file));
              intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
              if (writeAble) {
                  intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
              }
          } else {
              intent.setData(Uri.fromFile(file));
          }
      }
  
  
      public static void grantPermissions(Context context, Intent intent, Uri uri, boolean writeAble) {
  
          int flag = Intent.FLAG_GRANT_READ_URI_PERMISSION;
          if (writeAble) {
              flag |= Intent.FLAG_GRANT_WRITE_URI_PERMISSION;
          }
          intent.addFlags(flag);
          List<ResolveInfo> resInfoList = context.getPackageManager()
                  .queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
          for (ResolveInfo resolveInfo : resInfoList) {
              String packageName = resolveInfo.activityInfo.packageName;
              context.grantUriPermission(packageName, uri, flag);
          }
      }
  
  }
  