路径
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-path
name="mypath"
path="DCIM"/>
</paths>
清单文件
<provider
android:grantUriPermissions="true"
android:authorities="com.example.gitproject"
android:name="androidx.core.content.FileProvider">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths">
</meta-data>
</provider>
activity
mineHead.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
path = "/sdcard/DCIM/Camera/"+time();
Intent intent = new Intent();
intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
Uri uriForFile = FileProvider.getUriForFile(getActivity(), "com.example.gitproject", new File(path));
intent.putExtra(MediaStore.EXTRA_OUTPUT,uriForFile);
startActivityForResult(intent,103);
}
});
}
@Override
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == 103){
Glide.with(getActivity()).load(path).into(mineHead);
}
}
第二种方式拍照
Intent intent = new Intent()
intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent,666);
@Override
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == 666 ){
Toast.makeText(getActivity(), "完成", Toast.LENGTH_SHORT).show();
Bitmap data1 = (Bitmap) data.getExtras().get("data");
}
}
打电话
需要打电话权限
Intent intent = new Intent();
intent.setAction(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:10086"));
startActivity(intent);
打电话 sd卡权限
<uses-permission android:name="android.permission.CALL_PHONE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
requestPermissions(new String[]{"android.permission.CALL_PHONE","android.permission.WRITE_EXTERNAL_STORAGE","android.permission.READ_EXTERNAL_STORAGE"},1);
打开相册
Intent intent = new Intent();
intent.setAction(Intent.ACTION_PICK);
intent.setType("image/*");
startActivityForResult(intent,111);
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == 111 && resultCode == Activity.RESULT_OK){
Uri data1 = data.getData();
imageView.setImageURI(data1);
}
}