DEV Community

Dimitrios Desyllas
Dimitrios Desyllas

Posted on

How I can prompt a file manager of a known path in an android app?

As I ask upon:

I have the following activity in my application:

public class DisplaySettingsActivity extends AppCompatActivity implements View.OnClickListener {
    Button saveIntoFile;
    TextView msg;

    private ActivityResultLauncher<String> requestPermissionLauncher;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_display_settings);
        
        requestPermissionLauncher = registerForActivityResult(new ActivityResultContracts.RequestPermission(), isGranted -> {
            Log.d("H300s","Permissions Callback");

            if (isGranted) {
                Log.d("H300s","Permission Accepted 2");
                saveFile();
            } else {

I save a file into a pre-calculated path:

private void saveFile(){
   String state = Environment.getExternalStorageState();
   if (!Environment.MEDIA_MOUNTED.equals(state)) {
      saveMsgHandler(null);
      return;
   }

   this.saveIntoFile.setEnabled(false);

   DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyMMdd");
   File file = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);

   file = new File( file.getAbsolutePath(),"voip_h300s_"+pattern.format(LocalDate.now())+".txt");
   try {
       file.createNewFile();
       PrintWriter out = new PrintWriter(new FileWriter(file));
        out.println("SOME VALUES");
        out.close();
        saveMsgHandler(file.getAbsolutePath());
   } catch (Exception e) {
     saveMsgHandler(null);
   }
 }
Enter fullscreen mode Exit fullscreen mode

And I want once a file is successfully saved to prompt the device's file manager in order to convince the user that file is successfully saved.

But I do not know how to do that. Do far I found this piece of code:

public void displayFileIntoFileManager(String path){
        Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
        intent.setType("*/*");
        startActivity(intent, 7);
    }
Enter fullscreen mode Exit fullscreen mode

But I do not know how to provide the path to the Intent or whether is the correct one. Can you help me?

Discussion (0)