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,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","application/vnd.android.package-archive");
        startActivity(intent);
    } else {
        Toast.makeText(this,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",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,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",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",contentUri);
        } else {
            intent.putExtra(MediaStore.EXTRA_OUTPUT,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,uri);

        }else {

            intent.putExtra(MediaStore.EXTRA_OUTPUT,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");
    }
    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,1);
    } catch (Exception e) {
    }
}
项目: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,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,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,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,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,mPhotoFile);
        this.revokeUriPermission(uri,Intent.FLAG_GRANT_WRITE_URI_PERMISSION);

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

        callAPI();
    }
}
项目: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,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);
    }
}

相关文章

买水果
比较全面的redis工具类
gson 反序列化到多态子类
java 版本的 mb_strwidth
JAVA 反转字符串的最快方法,大概比StringBuffer.reverse()性...
com.google.gson.internal.bind.ArrayTypeAdapter的实例源码...