1.MainActivity
package com.example.mymediaprovider;
import android.Manifest;
import android.app.AlertDialog;
import android.content.ContentResolver;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.provider.MediaStore;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.Toast;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import static android.content.pm.PackageManager.PERMISSION_GRANTED;
import static android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS;
public class MainActivity extends AppCompatActivity {
private ContentResolver mProvider;
//Don't ask again
private static final int NOT_ASK_AGAIN = 2;
private AlertDialog mDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myRequestPermission();
}
//get user permission
private void myRequestPermission() {
if (ContextCompat.checkSelfPermission(this,
Manifest.permission.WRITE_EXTERNAL_STORAGE) != PERMISSION_GRANTED)
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
1);
else {
run();
Toast.makeText(this, R.string.toast_alreadyPermiss, Toast.LENGTH_SHORT).show();
}
}
//After having permission, then to get internal data
private void run() {
ImageView imageView = findViewById(R.id.iv_imageview);
String filePath;
//get data
mProvider