Jak otworzyć prywatne pliki zapisane w pamięci wewnętrznej za pomocą Intent.ACTION_VIEW?

Próbuję przykładowego programu, aby zapisać plik w pamięci wewnętrznej i otworzyć go za pomocą Intent.ACTION_VIEW.

Aby zapisać plik w trybie prywatnym, wykonałem podane krokitutaj.

Udało mi się znaleźć utworzony plik w pamięci wewnętrznej w /data/data/com.storeInternal.poc/files. *

Ale kiedy próbowałem otworzyć plik, nie otwiera się.

Poniżej znajduje się kod, którego użyłem.

public class InternalStoragePOCActivity extends Activity {
    /** Called when the activity is first created. */
    String FILENAME = "hello_file.txt";
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        createFile();
        openFile(FILENAME);
    }

    public FileOutputStream getStream(String path) throws FileNotFoundException {
        return openFileOutput(path, Context.MODE_PRIVATE);
    }

    public void createFile(){

        String string = "hello world!";
        FileOutputStream fout = null;
        try {
            //getting output stream
            fout = getStream(FILENAME);
            //writng data
            fout.write(string.getBytes());
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally{
            if(fout!=null){
                //closing the output stream
                try {
                    fout.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }

        }

    }

    public void openFile(String filePath) {
        try {
            File temp_file = new File(filePath);

            Uri data = Uri.fromFile(temp_file);
            String type = getMimeType(data.toString());

            Intent intent = new Intent(android.content.Intent.ACTION_VIEW);
            intent.setDataAndType(data, type);
            startActivity(intent);

        } catch (Exception e) {
            Log.d("Internal Storage POC ", "No Supported Application found to open this file");
            e.printStackTrace();

        }
    }

    public static String getMimeType(String url) {
        String type = null;
        String extension = MimeTypeMap.getFileExtensionFromUrl(url);

        if (extension != null) {
            MimeTypeMap mime = MimeTypeMap.getSingleton();
            type = mime.getMimeTypeFromExtension(extension);
        }

        return type;
    }
}

Jak mogę otworzyć plik zapisany przy użyciuContext.MODE_PRIVATE przez dowolną inną istniejącą / odpowiednią aplikację. Np. Plik.pdf powinien zostać otwarty przez czytnik PDF, wideo przez odtwarzacze wideo itp.

questionAnswers(3)

yourAnswerToTheQuestion