安卓创建file对象用于存储照片、视频、录音。

本文将教你如何创建file对象存储音频视频等媒体信息,以及如何获取file对象的uri地址

创建File文件

...MainActivity extends ....

private Uri imageUri;

public static final int TAKE_PHOTO = 1;

...onClick(view v)...

File outputXXX = new File(参数1,参数2);//创建file文件

try{

    if(outputXXX.exist()){

        outputXXX.delete();

    }

outputXXX.createNewFile();

}catche(IOException e){

    e.printStackTrace();

}

参数1:数据存储的位置(例如getExternalCacheDir(),将数据存在应用关联缓存目录下)

参数2:存储文件名(例如“image.jpg”,数据将以.jpg文件储存)

获取本地真实路径

...onClick(view v)...

if(Build.VERSION.SDK_INT >= 24){

    imageUri = FileProvider.getUriForFile(参数3,参数4,参数5);//转换成一个封装过的Uri对象

}else{

    imageUri = Uri.fromFile(参数5);

}

参数3:关联的activity(例如Mainactivity.this),填传入的context对象

参数4:任意唯一字符串(如"com.example.xxx.fileprovider"  我的程序名为test,则填"com.example.test.fileprovider")

参数5:刚刚创建的file对象(outputXXX)

启动相机程序

...onClick(view v)...

Intent intent =new Intent("android.media.action.IMAGE_CAPTURE");

intent.putExtra(MediaStore.EXTRA_OUTPUT,imageUri);

startActivityForResult(intent,TAKE_PHOTO);

注册内容提供器

在获取本地真实路径的时候使用了内容提供器,因此在AndroidManifest.xml中注册

    ....

    ....

        android:authorities="com.example.test.fileprovider"

        android:name="android.support.v4.content.FileProvider"

        android:exported="false"

        android:grantUriPermissions="true">

    

            android:name="android.support.FILE_PROVIDER_PATHS"

            android:resource="@xml/file_paths"/>

你可能感兴趣的:(安卓创建file对象用于存储照片、视频、录音。)