Java 类android.support.v4.content.FileProvider 实例源码

项目:GitHub    文件:AppInfoViewHolder.java   
private void installApk() {
    File[] files = mRxDownload.getRealFiles(mData.downloadUrl);
    if (files != null) {
        Uri uri = null;
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
            uri = FileProvider.getUriForFile(mContext, mContext.getApplicationInfo().packageName + ".provider", files[0]);
        } else {
            uri = Uri.fromFile(files[0]);
        }
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        intent.setDataAndType(uri, "application/vnd.android.package-archive");
        mContext.startActivity(intent);
    } else {
        Toast.makeText(mContext, "File not exists", Toast.LENGTH_SHORT).show();
    }
}
项目:metacom-android    文件:ChatFragment.java   
@Override
public boolean onContextItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case TAKE_PHOTO:
            Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            File f = new File(Environment.getExternalStorageDirectory() + TMP_METACOM_JPG);
            Uri uri = FileProvider.getUriForFile(getContext(), AUTHORITY_STRING, f);
            takePictureIntent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, uri);
            takePictureIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
            if (takePictureIntent.resolveActivity(getActivity().getPackageManager()) != null) {
                startActivityForResult(takePictureIntent, PICK_IMAGE_FROM_CAMERA);
            }
            return true;
        case FILE_EXPLORER:
            Intent intent = new Intent();
            intent.setType("*/*");
            intent.setAction(Intent.ACTION_GET_CONTENT);
            startActivityForResult(Intent.createChooser(intent, getString(R.string
                            .select_file)),
                    PICK_IMAGE_FROM_EXPLORER);
            return true;
        default:
            return super.onContextItemSelected(item);
    }
}
项目:smart-asset-iot-android-demo    文件:MainActivity.java   
@NeedsPermission({Manifest.permission.CAMERA})
void takeAPhoto() {
    Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    if (takePictureIntent.resolveActivity(this.getPackageManager()) != null) {
        Observable.just(this)
                .observeOn(Schedulers.newThread())
                .map((ctx) -> presenter.createImageFile(this))
                .subscribe(photoFile -> {
                    Timber.d(Thread.currentThread().getName());
                    if (photoFile != null) {
                        Uri photoURI = FileProvider.getUriForFile(this, BuildConfig.APPLICATION_ID
                                + ".provider", presenter.createImageFile(this));
                        takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);
                        startActivityForResult(takePictureIntent, TAKE_PHOTO);
                    }
                }, t -> onLocationError());
    }
}
项目:Kids-Portal-Android    文件:helper_main.java   
private static void openFile(Activity activity, File file, String string, View view) {

        Intent intent = new Intent();
        intent.setAction(Intent.ACTION_VIEW);
        intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
            intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
            Uri contentUri = FileProvider.getUriForFile(activity, activity.getApplicationContext().getPackageName() + ".provider", file);
            intent.setDataAndType(contentUri,string);

        } else {
            intent.setDataAndType(Uri.fromFile(file),string);
        }

        try {
            activity.startActivity (intent);
        } catch (ActivityNotFoundException e) {
            Snackbar.make(view, R.string.toast_install_app, Snackbar.LENGTH_LONG).show();
        }
    }
项目:mobile-app-dev-book    文件:JournalViewActivity.java   
@OnClick(R.id.fab_add_video)
public void do_add_video()
{
    Intent capture = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
    if (capture.resolveActivity(getPackageManager()) != null) {
        try {
            File videoFile = createFileName("traxyvid", ".mp4");
            mediaUri = FileProvider.getUriForFile(this,
                    getPackageName() + ".provider", videoFile);
            capture.putExtra(MediaStore.EXTRA_OUTPUT, mediaUri);
            startActivityForResult(capture, CAPTURE_VIDEO_REQUEST);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
项目:GCSApp    文件:MyInfoActivity.java   
public void takePicture() {
    try {
        mPhotoPath = sdcardPath + "/icon.jpg";
        mPhotoFile = new File(mPhotoPath);
        Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
        intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
        if (Build.VERSION.SDK_INT >= 23) {
            Uri uri = FileProvider.getUriForFile(this, getApplicationContext().getPackageName() + ".provider", mPhotoFile);
            intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);

        } else {

            intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(mPhotoFile));
        }
        startActivityForResult(intent, 1);

    } catch (Exception e) {
    }



}
项目:GitHub    文件:DownloadViewHolder.java   
private void installApk() {
    File[] files = mRxDownload.getRealFiles(data.record.getUrl());
    if (files != null) {
        Uri uri = null;
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
            uri = FileProvider.getUriForFile(mContext, mContext.getApplicationInfo().packageName + ".provider", files[0]);
        } else {
            uri = Uri.fromFile(files[0]);
        }
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        intent.setDataAndType(uri, "application/vnd.android.package-archive");
        mContext.startActivity(intent);
    } else {
        Toast.makeText(mContext, "File not exists", Toast.LENGTH_SHORT).show();
    }
}
项目:GitHub    文件:ServiceDownloadActivity.java   
private void installApk() {
    File[] files = mRxDownload.getRealFiles(url);
    if (files != null) {
        Uri uri = null;
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
            uri = FileProvider.getUriForFile(this, getApplicationInfo().packageName + ".provider", files[0]);
        } else {
            uri = Uri.fromFile(files[0]);
        }
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        intent.setDataAndType(uri, "application/vnd.android.package-archive");
        startActivity(intent);
    } else {
        Toast.makeText(this, "File not exists", Toast.LENGTH_SHORT).show();
    }
}
项目:android-study    文件:Android7UI.java   
public void newCrop() {
  File file = new File(Environment.getExternalStorageDirectory(),
      "/temp/" + System.currentTimeMillis() + ".jpg");
  if (!file.getParentFile().exists()) file.getParentFile().mkdirs();
  //输出路径只能用Uri.fromFile,不然报错
  //outputUri = FileProvider.getUriForFile(this, "com.liuguoquan.module.ui.provider",file);
  outputUri = Uri.fromFile(file);
  Uri imageUri = FileProvider.getUriForFile(getActivity(), "com.michael.materialdesign.provider",
      new File("/storage/emulated/0/temp/1476865100115.jpg"));//通过FileProvider创建一个content类型的Uri
  //grantUriPermission(getPackageName(),imageUri,Intent.FLAG_GRANT_READ_URI_PERMISSION);
  Intent intent = new Intent("com.android.camera.action.CROP");
  intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
  intent.setDataAndType(mImageUri, "image/*");
  intent.putExtra("crop", "true");
  intent.putExtra("aspectX", 1);
  intent.putExtra("aspectY", 1);
  intent.putExtra("scale", true);
  intent.putExtra(MediaStore.EXTRA_OUTPUT, outputUri);
  intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());
  intent.putExtra("noFaceDetection", true); // no face detection
  startActivityForResult(intent, 1008);
}
项目:Face_Animate    文件:BitmapUtils.java   
/**
 * Helper method for sharing an image.
 *
 * @param context   The image context.
 * @param imagePath The path of the image to be shared.
 */
static void shareImage(Context context, String imagePath) {
    // Create the share intent and start the share activity
    File imageFile = new File(imagePath);
    Intent shareIntent = new Intent(Intent.ACTION_SEND);
    //type determines the type of application an intent would choose
    shareIntent.setType("image/*");
    //To share a file with another app using a content URI, your app has to generate
    // the content URI. To generate the content URI, create a new File for the file,
    // then pass the File to getUriForFile(). You can send the content URI returned by
    // getUriForFile() to another app in an Intent. The client app that receives the content
    // URI can open the file and access its contents by calling
    // ContentResolver.openFileDescriptor to get a ParcelFileDescriptor.
    Uri photoURI = FileProvider.getUriForFile(context, FILE_PROVIDER_AUTHORITY, imageFile);
    shareIntent.putExtra(Intent.EXTRA_STREAM, photoURI);
    context.startActivity(shareIntent);
}
项目:chromium-swe-updater    文件:ChromiumUpdater.java   
/**Installs the update by invoking the default packet installer*/
private void installUpdate(File downloadPath) {
    File apk = new File(downloadPath, ChromiumUpdater.CHROMIUM_SWE_APK);
    Intent intent = new Intent(Intent.ACTION_VIEW);

    Uri uri;
    if(android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
        uri = FileProvider.getUriForFile(context, context.getApplicationContext()
                .getPackageName() + ".provider", apk);
        context.grantUriPermission("com.android.packageinstaller", uri,
                Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION);
        context.grantUriPermission("com.google.android.packageinstaller", uri,
                Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION);
    } else {
        uri = Uri.fromFile(apk);
    }

    intent.setDataAndType(uri, "application/vnd.android.package-archive");
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(intent);
}
项目:TakingPhotosSimply    文件:MainActivity.java   
private void dispatchTakePictureIntentTest4() {
    Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    // Ensure that there's a camera activity to handle the intent
    if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
        // Create the File where the photo should go
        File photoFile = null;
        try {
            photoFile = createImageFile(false);
        } catch (IOException ex) {
            // Error occurred while creating the File
            ex.printStackTrace();
        }
        // Continue only if the File was successfully created
        if (photoFile != null) {
            Uri photoURI = FileProvider.getUriForFile(this,
                    "com.ge.droid.takingphotossimply.fileprovider",
                    photoFile);
            takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);
            startActivityForResult(takePictureIntent, REQUEST_TAKE_PICTURE_TEST_4);
        }
    }
}
项目:GCSApp    文件:ReleaseDynActivity.java   
public void takePicture() {
    try {
        mPhotoPath = sdcardPath + "/icon.png";
        mPhotoFile = new File(mPhotoPath);
        Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
        intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
        if (Build.VERSION.SDK_INT >= 23) {
            Uri uri = FileProvider.getUriForFile(this, getApplicationContext().getPackageName() + ".provider", mPhotoFile);
            intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);

        } else {

            intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(mPhotoFile));
        }
        startActivityForResult(intent, 1);
    } catch (Exception e) {
    }
}
项目:FastLib    文件:WebViewActivity.java   
private void installApk(Context context, String apkPath) {
    if (context == null || TextUtils.isEmpty(apkPath)) {
        return;
    }
    File file = new File(apkPath);
    Intent intent = new Intent(Intent.ACTION_VIEW);
    //判读版本是否在7.0以上
    if (Build.VERSION.SDK_INT >= 24) {
        Uri apkUri = FileProvider.getUriForFile(context, context.getPackageName() + ".AgentWebFileProvider", file);
        intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
        intent.setDataAndType(apkUri, "application/vnd.android.package-archive");
    } else {
        intent.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive");
    }
    context.startActivity(intent);
}
项目:DaiGo    文件:DownloadService.java   
/**
 * 打开下载好的APK文件
 */
private void openAPK() {
    String fileName = Environment.getExternalStoragePublicDirectory(
            Environment.DIRECTORY_DOWNLOADS).getPath() +
            downloadUrl.substring(downloadUrl.lastIndexOf("/"));
    Intent intent = new Intent();

    intent.setAction(Intent.ACTION_VIEW);

    Uri contentUri;
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
        intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
        contentUri = FileProvider.getUriForFile(this, "com.jshaz.daigo.fileprovider",
                new File(fileName));
    } else {
        contentUri = Uri.fromFile(new File(fileName));
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    }

    intent.setDataAndType(contentUri, "application/vnd.android.package-archive");
    startActivity(intent);
}
项目:maktabkhoone-instagram    文件:ShareImageActivity.java   
private void sendCameraIntent() {
    Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
        File photo = null;
        try {
            photo = createImageFile();
        } catch (IOException e) {
            e.printStackTrace();
        }
        if(photo != null){
            Uri file  = FileProvider.getUriForFile(this, "ir.hphamid.instagram.fileProvider", photo);
            imageUri = Uri.fromFile(photo);
            takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, file);
            startActivityForResult(takePictureIntent, IMAGE_CAPTURE);
        }
    }
}
项目:cda-app    文件:ChatActivity.java   
private void callCamera() {

        String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
        String imageFileName = timeStamp + ".jpg";
        File storageDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
        pictureImagePath = storageDir.getAbsolutePath() + "/" + imageFileName;

        File file = new File(pictureImagePath);

        Uri outputFileUri = FileProvider.getUriForFile(getApplicationContext(), getApplicationContext().getApplicationContext().getPackageName() + ".provider", file);

        Intent CameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        CameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
        CameraIntent.putExtra(Intent.EXTRA_RETURN_RESULT, true);
        CameraIntent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);

        startActivityForResult(CameraIntent, 5);
    }
项目:OSchina_resources_android    文件:OpenBuilder.java   
/**
 * 单纯分享图片
 */
private void share(Bitmap bitmap, int scene) {
    try {
        String url = saveShare(bitmap);
        Intent intent = new Intent();
        intent.setAction(Intent.ACTION_SEND);
        Uri uri = FileProvider.getUriForFile(activity,"net.oschina.app.provider",new File(url));
        intent.putExtra(Intent.EXTRA_STREAM, uri);//uri为你要分享的图片的uri
        intent.setType("image/*");
        intent.setClassName("com.tencent.mm", scene == SendMessageToWX.Req.WXSceneTimeline ?
                "com.tencent.mm.ui.tools.ShareToTimeLineUI"
                : "com.tencent.mm.ui.tools.ShareImgUI");
        activity.startActivityForResult(intent, 1);
    }catch (Exception e){
        e.printStackTrace();
        Toast.makeText(activity,"请安装微信",Toast.LENGTH_SHORT).show();
    }
}
项目:Bailan    文件:AppInfoUtils.java   
public static void install(String path, File apkFile) {


        Intent installIntent = new Intent(Intent.ACTION_VIEW);
        //判断是否是AndroidN以及更高的版本
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
            installIntent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
            Uri contentUri = FileProvider.getUriForFile(UIUtils.getContext(), com.example.ggxiaozhi.store.the_basket.BuildConfig.APPLICATION_ID + ".fileProvider", apkFile);
            installIntent.setDataAndType(contentUri, "application/vnd.android.package-archive");
        } else {
            installIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            installIntent.setDataAndType(Uri.parse("file://" + path),
                    "application/vnd.android.package-archive");
        }

        UIUtils.getContext().startActivity(installIntent);
    }
项目:HybridForAndroid    文件:Utils.java   
/**
 * 处理7.0兼容问题
 * @param context
 * @param file
 */
public static void installApk(Context context, File file) {
    Intent intent = new Intent(Intent.ACTION_VIEW);
    Uri data;
    // 判断版本大于等于7.0
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
        // "net.csdn.blog.ruancoder.fileprovider"即是在清单文件中配置的authorities
        data = FileProvider.getUriForFile(context, "com.example.jianqiang.hybridapp.fileprovider", file);
        // 给目标应用一个临时授权
        intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
    } else {
        data = Uri.fromFile(file);
    }
    intent.setDataAndType(data, "application/vnd.android.package-archive");
    context.startActivity(intent);
}
项目:Matisse-Image-and-Video-Selector    文件:MediaStoreCompat.java   
public void dispatchCaptureIntent(Context context, int requestCode) {
    Intent captureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    if (captureIntent.resolveActivity(context.getPackageManager()) != null) {
        File photoFile = null;
        try {
            photoFile = createImageFile();
        } catch (IOException e) {
            e.printStackTrace();
        }

        if (photoFile != null) {
            mCurrentPhotoPath = photoFile.getAbsolutePath();
            mCurrentPhotoUri = FileProvider.getUriForFile(mContext.get(),
                    mCaptureStrategy.authority, photoFile);
            captureIntent.putExtra(MediaStore.EXTRA_OUTPUT, mCurrentPhotoUri);
            captureIntent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
            if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
                List<ResolveInfo> resInfoList = context.getPackageManager()
                        .queryIntentActivities(captureIntent, PackageManager.MATCH_DEFAULT_ONLY);
                for (ResolveInfo resolveInfo : resInfoList) {
                    String packageName = resolveInfo.activityInfo.packageName;
                    context.grantUriPermission(packageName, mCurrentPhotoUri,
                            Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION);
                }
            }
            if (mFragment != null) {
                mFragment.get().startActivityForResult(captureIntent, requestCode);
            } else {
                mContext.get().startActivityForResult(captureIntent, requestCode);
            }
        }
    }
}
项目:Saiy-PS    文件:UtilsFile.java   
/**
 * Convert a raw resource to a file on the private storage
 *
 * @param ctx        the application context
 * @param resourceId the resource identifier
 * @return the file or null if the process failed
 */
public static File oggToCacheAndGrant(@NonNull final Context ctx, final int resourceId, final String packageName) {

    final String cachePath = getPrivateDirPath(ctx);

    if (UtilsString.notNaked(cachePath)) {

        final String name = ctx.getResources().getResourceEntryName(resourceId);

        final File file = resourceToFile(ctx, resourceId, new File(cachePath + SOUND_EFFECT_DIR + name
                + "." + Constants.OGG_AUDIO_FILE_SUFFIX));

        if (file != null) {
            if (DEBUG) {
                MyLog.i(CLS_NAME, "wavToCacheAndGrant file exists: " + file.exists());
                MyLog.i(CLS_NAME, "wavToCacheAndGrant file path: " + file.getAbsolutePath());
            }

            final Uri contentUri = FileProvider.getUriForFile(ctx, FILE_PROVIDER, file);
            ctx.grantUriPermission(packageName, contentUri, Intent.FLAG_GRANT_READ_URI_PERMISSION);

            return file;
        } else {
            if (DEBUG) {
                MyLog.e(CLS_NAME, "wavToCacheAndGrant file null");
            }
        }
    } else {
        if (DEBUG) {
            MyLog.e(CLS_NAME, "wavToCacheAndGrant failed to get any path");
        }
    }

    return null;

}
项目:RetroMusicPlayer    文件:MusicUtil.java   
@NonNull
public static Intent createShareSongFileIntent(@NonNull final Song song, Context context) {
    try {

        return new Intent()
                .setAction(Intent.ACTION_SEND)
                .putExtra(Intent.EXTRA_STREAM,
                        FileProvider.getUriForFile(context,
                                context.getApplicationContext().getPackageName(),
                                new File(song.data)))
                .addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
                .setType("audio/*");
    } catch (IllegalArgumentException e) {
        // TODO the path is most likely not like /storage/emulated/0/... but something like /storage/28C7-75B0/...
        e.printStackTrace();
        Toast.makeText(context, "Could not share this file, I'm aware of the issue.", Toast.LENGTH_SHORT).show();
        return new Intent();
    }
}
项目:PimPam    文件:CameraUtils.java   
private static void dispatchTakePictureIntent(final Activity activity, final Context context, final BaseFragment fragment) {
    Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    // Ensure that there's a camera activity to handle the intent
    if (takePictureIntent.resolveActivity(context.getPackageManager()) != null) {
        // Create the File where the photo should go
        File photoFile = null;
        try {
            photoFile = createImageFile(context);
        } catch (IOException ex) {
            // Error occurred while creating the File

        }
        // Continue only if the File was successfully created
        if (photoFile != null) {
            Uri photoURI = FileProvider.getUriForFile(context,
                    "jcollado.pw.pimpam.fileprovider",
                    photoFile);
            takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);
            if(fragment!=null) fragment.startActivityForResult(takePictureIntent, CAMERA_PICK);
            else{
                activity.startActivityForResult(takePictureIntent, CAMERA_PICK);
            }
        }
    }
}
项目:RxGallery    文件:MainActivity.java   
private Uri getExternalStorageUri() {
    Uri uri = null;
    try {
        File directory = new File(getExternalFilesDir(null), "images");
        if (!directory.exists()) {
            if (!directory.mkdir()) {
                throw new IOException();
            }
        }
        String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.getDefault()).format(new Date());
        File file = File.createTempFile(timeStamp, ".jpg", directory);
        uri = FileProvider.getUriForFile(MainActivity.this, AUTHORITY, file);
    } catch (IOException e) {
        Toast.makeText(this, getString(R.string.output_file_error), Toast.LENGTH_LONG).show();
    }
    return uri;
}
项目:MiPushFramework    文件:LogUtils.java   
public static void shareFile (Context context) {
    File file = new File(getLogFile(context));
    if (!file.exists() || file.length() <= 0) {
        Toast.makeText(context, R.string.log_none
                , Toast.LENGTH_SHORT).show();
        return;
    }
    Intent result = new Intent(Intent.ACTION_SEND);
    result.setType("text/*");
    try {
        Uri fileUri = FileProvider.getUriForFile(
                context,
                Constants.AUTHORITY_FILE_PROVIDER,
                file);
        result.addFlags(
                Intent.FLAG_GRANT_READ_URI_PERMISSION);
        result.putExtra(Intent.EXTRA_STREAM, fileUri);
        context.startActivity(result);
    } catch (Exception e) {
        e.printStackTrace();
        Toast.makeText(context, context.getString(R.string.log_share_error,
                e.getMessage()), Toast.LENGTH_SHORT).show();
    }
}
项目:AmenEye    文件:ChoosePhotoActivity.java   
/**
 * 拍照
 */
private void takePhoto() {
    try {
        Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
        File file = new File(ViewUtil.getAppFile(this, "images"));
        File mPhotoFile = new File(ViewUtil.getAppFile(this, "images/user_take.jpg"));
        if (!file.exists()) {
            boolean result = file.mkdirs();
            if (!mPhotoFile.exists()) {
                boolean b = mPhotoFile.createNewFile();
            }
        }
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
            intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
            Uri contentUri = FileProvider.getUriForFile(this, "cn.aaronyi.ameneye.fileprovider", mPhotoFile);
            intent.putExtra(MediaStore.EXTRA_OUTPUT, contentUri);
        } else {
            intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(mPhotoFile));
        }
        startActivityForResult(intent, ACTION_TAKE_PHOTO);
    } catch (Exception e) {
        e.printStackTrace();
    }
}
项目:UpdateLibrary    文件:UpdateDialog.java   
/**
 * 安装软件
 */
private void installApk() {
    if (apkFile == null || !apkFile.exists()) {
        startDownApk();
    } else {
        Intent intent = new Intent(Intent.ACTION_VIEW);
        Uri data;
        String type = "application/vnd.android.package-archive";

        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) {
            data = Uri.fromFile(apkFile);
        } else {
            intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
            data = FileProvider.getUriForFile(mContext, "com.ruiiqn.update.fileprovider", apkFile);
        }
        intent.setDataAndType(data, type);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        mContext.startActivity(intent);
    }
}
项目:GCSApp    文件:CreateCircleActivity.java   
public void takePicture() {
    try {
        mPhotoPath = sdcardPath + "/icon.png";
        mPhotoFile = new File(mPhotoPath);
        Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
        intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
        if (Build.VERSION.SDK_INT >= 23) {
            Uri uri = FileProvider.getUriForFile(this, getApplicationContext().getPackageName() + ".provider", mPhotoFile);
            intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);

        }else {

            intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(mPhotoFile));
        }
        startActivityForResult(intent, 1);
    } catch (Exception e) {
    }
}
项目:BaseCore    文件:DownloadService.java   
/**
 * 通过隐式意图调用系统安装程序安装APK
 */
public static void install(Context context) {
    File file = new File(
            Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
            , apkname);
    Intent intent = new Intent(Intent.ACTION_VIEW);
    // 由于没有在Activity环境下启动Activity,设置下面的标签
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    if (Build.VERSION.SDK_INT >= 24) { //判读版本是否在7.0以上
        //参数1 上下文, 参数2 Provider主机地址 和配置文件中保持一致   参数3  共享的文件
        Uri apkUri =
                FileProvider.getUriForFile(context, "com.hzecool.slhStaff.fileprovider", file);
        //添加这一句表示对目标应用临时授权该Uri所代表的文件
        intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
        intent.setDataAndType(apkUri, "application/vnd.android.package-archive");
    } else {
        intent.setDataAndType(Uri.fromFile(file),
                "application/vnd.android.package-archive");
    }
    context.startActivity(intent);
}
项目:GCSApp    文件:CircleInfoActivity.java   
public void takePicture() {
    try {
        mPhotoPath = sdcardPath + "/icon.png";
        mPhotoFile = new File(mPhotoPath);
        Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
        intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
        if (Build.VERSION.SDK_INT >= 23) {
            Uri uri = FileProvider.getUriForFile(this, getApplicationContext().getPackageName() + ".provider", mPhotoFile);
            intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);

        } else {

            intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(mPhotoFile));
        }
        startActivityForResult(intent, 1);
    } catch (Exception e) {
    }
}
项目:mobile-app-dev-book    文件:JournalViewActivity.java   
@OnClick(R.id.fab_add_video)
public void do_add_video()
{
    Intent capture = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
    if (capture.resolveActivity(getPackageManager()) != null) {
        try {
            File videoFile = createFileName("traxyvid", ".mp4");
            mediaUri = FileProvider.getUriForFile(this,
                    getPackageName() + ".provider", videoFile);
            capture.putExtra(MediaStore.EXTRA_OUTPUT, mediaUri);
            startActivityForResult(capture, CAPTURE_VIDEO_REQUEST);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
项目:Clases-2017c1    文件:SelectPictureActivity.java   
private void takePicture() {
    Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
        // Create the File where the photo should go
        File photoFile = null;
        try {
            photoFile = createImageFile();
        } catch (IOException ex) {
            // Error occurred while creating the File
        }
        // Continue only if the File was successfully created
        if (photoFile != null) {
            Uri photoURI = FileProvider.getUriForFile(this, "ar.edu.utn.frba.myapplication.fileprovider", photoFile);
            grantPermissionsToUri(this, takePictureIntent, photoURI);
            takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);
            startActivityForResult(takePictureIntent, REQUEST_TAKE_PHOTO);
        }
    }
}
项目:REDAndroid    文件:ReleaseActivity.java   
@Override
public void showDownloadComplete(File file) {

    Uri uri = FileProvider.getUriForFile(this, BuildConfig.APPLICATION_ID + ".provider", file);
    Intent intent = new Intent(Intent.ACTION_VIEW, uri);
    intent.setDataAndType(uri, "application/x-bittorrent");
    intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);

    NotificationCompat.Builder mBuilder =
            new NotificationCompat.Builder(this)
                    .setSmallIcon(R.drawable.ic_rippy)
                    .setContentTitle("Download complete")
                    .setContentText(file.getName());

    PendingIntent contentIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
    mBuilder.setOngoing(false);

    mBuilder.setContentIntent(contentIntent);
    NotificationManager mNotificationManager =
            (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    mNotificationManager.notify(file.hashCode(), mBuilder.build());
}
项目:quire    文件:UpdateUserListingActivity.java   
private void dispatchTakePictureIntent() throws IOException {

        Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

        if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
            // Create the File where the photo should go
            File photoFile = null;
            try {
                photoFile = createImageFile();
            } catch (IOException ex) {
                // Error occurred while creating the File
            }
            // Continue only if the File was successfully created
            if (photoFile != null) {
                Uri photoURI = FileProvider.getUriForFile(this,
                        "com.naren.quire.provider",
                        photoFile);
                takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);
                startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
            }
        }
    }
项目:homunculus    文件:IntentImages.java   
@Override
public void whenReceived(Procedure<Result<Uri>> callback) {
    intentManager.registerOnActivityResult(requestCodeCamera, activityResult -> {
        if (activityResult.getResultCode() != Activity.RESULT_OK) {
            callback.apply(Result.<Uri>create().put("code", activityResult.getRequestCode()).setThrowable(new RuntimeException("unsupported result code: " + activityResult.getRequestCode())));
        } else {
            if (getCameraTmpFile().length() > 0) {
                Uri photoURI = FileProvider.getUriForFile(permissions.getActivity(), getAuthority(), getCameraTmpFile());
                callback.apply(Result.create(photoURI));
            } else {
                asyncParseUris(scope, activityResult.getData()).whenDone(resList -> {
                    if (resList.exists() && resList.get().size() > 0) {
                        callback.apply(Result.create(resList.get().get(0)));
                    } else {
                        callback.apply(Result.nullValue(resList));
                    }
                });
            }
        }
        return true;
    });
}
项目:CustomAndroidOneSheeld    文件:DataLoggerShield.java   
protected void showNotification(String notificationText) {
    // TODO Auto-generated method stub
    NotificationCompat.Builder build = new NotificationCompat.Builder(
            activity);
    build.setSmallIcon(OneSheeldApplication.getNotificationIcon());
    build.setContentTitle(activity.getString(R.string.data_logger_shield_name));
    build.setContentText(notificationText);
    build.setTicker(notificationText);
    build.setWhen(System.currentTimeMillis());
    build.setAutoCancel(true);
    Toast.makeText(activity, notificationText, Toast.LENGTH_SHORT).show();
    Vibrator v = (Vibrator) activity
            .getSystemService(Context.VIBRATOR_SERVICE);
    v.vibrate(1000);
    Intent notificationIntent = new Intent(Intent.ACTION_VIEW);
    MimeTypeMap mimeTypeMap = MimeTypeMap.getSingleton();
    String mimeFileType = mimeTypeMap.getMimeTypeFromExtension("csv");
    if(Build.VERSION.SDK_INT>=24) {
        Uri fileURI = FileProvider.getUriForFile(activity,
                BuildConfig.APPLICATION_ID + ".provider",
                new File(filePath == null || filePath.length() == 0 ? "" : filePath));
        notificationIntent.setDataAndType(fileURI, mimeFileType);
    }
    else{
        notificationIntent.setDataAndType(Uri.fromFile(new File(filePath == null
                || filePath.length() == 0 ? "" : filePath)), mimeFileType);
    }
    notificationIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    notificationIntent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
    PendingIntent intent = PendingIntent.getActivity(activity, 0,
            notificationIntent, 0);
    build.setContentIntent(intent);
    Notification notification = build.build();
    notification.flags |= Notification.FLAG_AUTO_CANCEL;
    NotificationManager notificationManager = (NotificationManager) activity
            .getSystemService(Context.NOTIFICATION_SERVICE);
    notificationManager.notify((int) new Date().getTime(), notification);
}
项目:ishealthy    文件:MainActivity.java   
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode != RESULT_OK) {
        return;
    }

    if (requestCode == REQUEST_IMAGE_CAPTURE) {
        mDialog = ProgressDialog.show(this, "", getString(R.string.progress_dialog), true);

        Uri uri = FileProvider.getUriForFile(this, FILE_PROVIDER, mPhotoFile);
        this.revokeUriPermission(uri, Intent.FLAG_GRANT_WRITE_URI_PERMISSION);

        try {
            PictureUtils.compressBitmap(mPhotoFile);
        } catch (IOException e) {
            e.printStackTrace();
        }

        callAPI();
    }
}
项目:mobile-app-dev-book    文件:JournalViewActivity.java   
@OnClick(R.id.fab_add_video)
public void do_add_video()
{
    Intent capture = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
    if (capture.resolveActivity(getPackageManager()) != null) {
        try {
            File videoFile = createFileName("traxyvid", ".mp4");
            mediaUri = FileProvider.getUriForFile(this,
                    getPackageName() + ".provider", videoFile);
            capture.putExtra(MediaStore.EXTRA_OUTPUT, mediaUri);
            startActivityForResult(capture, CAPTURE_VIDEO_REQUEST);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
项目:Simpler    文件:ImageSelectFragment.java   
private void showCameraAction() {
    if (config.maxNum <= Global.imageList.size()) {
        AppToast.showToast(String.format(getString(R.string.max_num), config.maxNum));
        return;
    }

    if (ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.CAMERA)
            != PackageManager.PERMISSION_GRANTED) {
        requestPermissions(new String[]{Manifest.permission.CAMERA}, CAMERA_REQUEST_CODE);
        return;
    }

    Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

    if (cameraIntent.resolveActivity(getActivity().getPackageManager()) != null) {
        tempFile = new File(FileUtils.getRootPath(getActivity()) + File.separator
                + getActivity().getString(R.string.app_name) + "_" + System.currentTimeMillis() + ".jpg");
        // 创建临时照片文件
        FileUtils.createFile(tempFile);

        Uri uri = FileProvider.getUriForFile(getActivity(), FileUtils.getApplicationId(getActivity()) + ".provider", tempFile);

        List<ResolveInfo> resInfoList = getActivity().getPackageManager()
                .queryIntentActivities(cameraIntent, PackageManager.MATCH_DEFAULT_ONLY);
        for (ResolveInfo resolveInfo : resInfoList) {
            String packageName = resolveInfo.activityInfo.packageName;
            getActivity().grantUriPermission(packageName, uri, Intent.FLAG_GRANT_WRITE_URI_PERMISSION
                    | Intent.FLAG_GRANT_READ_URI_PERMISSION);
        }

        cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
        startActivityForResult(cameraIntent, REQUEST_CAMERA);
    } else {
        AppToast.showToast(R.string.open_camera_failure);
    }
}