如何跟踪文件的路径在其他一些应用程序上

时间:2017-11-09 15:50:52

标签: android file service broadcastreceiver

我对我的应用程序有一个要求,即我必须跟踪文件路径,然后我必须跟踪文件的时间,如果该文件在某个其他应用程序中打开。我研究了一切,但仍然没有弄清楚如何开始。我知道它具有挑战性和脑卒中实施,但我需要适当的想法才能继续前进。

我已经实现了在文件夹中创建文件(文件是.pdf / .docs等)。现在我需要的是任何人在任何其他应用程序中打开文件然后我必须首先获取文件的路径,其次我必须跟踪文件打开和关闭的时间。这是我创建文件夹并将文件转储到其中的方式。现在我必须阅读其他应用程序中打开的文件路径和文件。

@Override
    protected File doInBackground(FileMetadata... params) {
        FileMetadata metadata = params[0];
        //pathOfFileToSaved --> eg flight/ticket/vilash.pdf , flight/other/suman.docs
        String folder_name = pathOfFileToSaved;

       // File f = new File(Environment.getExternalStorageDirectory(), folder_main);

        try {
            File path = new File(Environment.getExternalStorageDirectory() + "/" + folder_name);
            Log.e("pathoffile",""+path);
            File file = new File(path, metadata.getName());

            // Make sure the Downloads directory exists.
            if (!path.exists()) {
                if (!path.mkdirs()) {
                    mException = new RuntimeException("Unable to create directory: " + path);
                }
            } else if (!path.isDirectory()) {
                mException = new IllegalStateException("Download path is not a directory: " + path);
                return null;
            }

            // Download the file.
            try (OutputStream outputStream = new FileOutputStream(file)) {
                mDbxClient.files().download(metadata.getPathLower(), metadata.getRev())
                    .download(outputStream);
            }

            // Tell android about the file
            Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
            intent.setData(Uri.fromFile(file));
            mContext.sendBroadcast(intent);

            return file;
        } catch (DbxException | IOException e) {
            mException = e;
        }

        return null;
    }

0 个答案:

没有答案