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);
}
}