java类android.support.v4.content.FileProvider的实例源码

AppInfoViewHolder.java 文件源码 项目:GitHub 阅读 23 收藏 0 点赞 0 评论 0
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();
    }
}
ChatFragment.java 文件源码 项目:metacom-android 阅读 35 收藏 0 点赞 0 评论 0
@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);
    }
}
MainActivity.java 文件源码 项目:smart-asset-iot-android-demo 阅读 25 收藏 0 点赞 0 评论 0
@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());
    }
}
helper_main.java 文件源码 项目:Kids-Portal-Android 阅读 29 收藏 0 点赞 0 评论 0
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();
        }
    }
JournalViewActivity.java 文件源码 项目:mobile-app-dev-book 阅读 36 收藏 0 点赞 0 评论 0
@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();
        }
    }
}
MyInfoActivity.java 文件源码 项目:GCSApp 阅读 37 收藏 0 点赞 0 评论 0
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) {
    }



}
DownloadViewHolder.java 文件源码 项目:GitHub 阅读 26 收藏 0 点赞 0 评论 0
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();
    }
}
ServiceDownloadActivity.java 文件源码 项目:GitHub 阅读 23 收藏 0 点赞 0 评论 0
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();
    }
}
Android7UI.java 文件源码 项目:android-study 阅读 23 收藏 0 点赞 0 评论 0
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);
}
BitmapUtils.java 文件源码 项目:Face_Animate 阅读 44 收藏 0 点赞 0 评论 0
/**
 * 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);
}
ChromiumUpdater.java 文件源码 项目:chromium-swe-updater 阅读 22 收藏 0 点赞 0 评论 0
/**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);
}
MainActivity.java 文件源码 项目:TakingPhotosSimply 阅读 25 收藏 0 点赞 0 评论 0
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);
        }
    }
}
ReleaseDynActivity.java 文件源码 项目:GCSApp 阅读 20 收藏 0 点赞 0 评论 0
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) {
    }
}
WebViewActivity.java 文件源码 项目:FastLib 阅读 31 收藏 0 点赞 0 评论 0
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);
}
DownloadService.java 文件源码 项目:DaiGo 阅读 23 收藏 0 点赞 0 评论 0
/**
 * 打开下载好的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);
}
ShareImageActivity.java 文件源码 项目:maktabkhoone-instagram 阅读 21 收藏 0 点赞 0 评论 0
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);
        }
    }
}
ChatActivity.java 文件源码 项目:cda-app 阅读 23 收藏 0 点赞 0 评论 0
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);
    }
OpenBuilder.java 文件源码 项目:OSchina_resources_android 阅读 24 收藏 0 点赞 0 评论 0
/**
 * 单纯分享图片
 */
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();
    }
}
AppInfoUtils.java 文件源码 项目:Bailan 阅读 29 收藏 0 点赞 0 评论 0
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);
    }
Utils.java 文件源码 项目:HybridForAndroid 阅读 27 收藏 0 点赞 0 评论 0
/**
 * 处理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);
}
MediaStoreCompat.java 文件源码 项目:Matisse-Image-and-Video-Selector 阅读 32 收藏 0 点赞 0 评论 0
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);
            }
        }
    }
}
UtilsFile.java 文件源码 项目:Saiy-PS 阅读 24 收藏 0 点赞 0 评论 0
/**
 * 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;

}
MusicUtil.java 文件源码 项目:RetroMusicPlayer 阅读 23 收藏 0 点赞 0 评论 0
@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();
    }
}
CameraUtils.java 文件源码 项目:PimPam 阅读 38 收藏 0 点赞 0 评论 0
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);
            }
        }
    }
}
MainActivity.java 文件源码 项目:RxGallery 阅读 23 收藏 0 点赞 0 评论 0
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;
}
LogUtils.java 文件源码 项目:MiPushFramework 阅读 34 收藏 0 点赞 0 评论 0
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();
    }
}
ChoosePhotoActivity.java 文件源码 项目:AmenEye 阅读 28 收藏 0 点赞 0 评论 0
/**
 * 拍照
 */
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();
    }
}
UpdateDialog.java 文件源码 项目:UpdateLibrary 阅读 34 收藏 0 点赞 0 评论 0
/**
 * 安装软件
 */
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);
    }
}
CreateCircleActivity.java 文件源码 项目:GCSApp 阅读 21 收藏 0 点赞 0 评论 0
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) {
    }
}
DownloadService.java 文件源码 项目:BaseCore 阅读 23 收藏 0 点赞 0 评论 0
/**
 * 通过隐式意图调用系统安装程序安装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);
}


问题


面经


文章

微信
公众号

扫码关注公众号