在没有上下文的情况下获取应用程序的存储路径

时间:2015-04-09 19:07:18

标签: android android-service

我有一个后台服务,当它收到一些内容时激活BroadcastReceiver类。我想将其保存到外部目录中应用程序的路径,该路径通过调用Context.getExternalFilesDir()(/sdcard/Android/data/com.example.app/)返回。但是,由于这种情况发生在后台,我没有上下文,因此我无法获得该路径。我绝对不希望硬编码路径,并希望在卸载应用程序时删除数据。我可以通过其他方式获得完整的路径吗?

3 个答案:

答案 0 :(得分:5)

服务本身是您可以使用的上下文http://developer.android.com/reference/android/app/Service.html

this.getExternalFilesDir()

关于服务。

答案 1 :(得分:3)

试试这个,

String path = Environment.getExternalStorageDirectory().getAbsolutePath();

答案 2 :(得分:0)

如果您知道要读取的文件的地址,则不需要上下文。

String getKey(String filename) throws IOException {
    // Read from file
    String myStringFromFile= "";
    BufferedReader br = new BufferedReader(new FileReader(filename));
    String line;
    while ((line = br.readLine()) != null) {
        myStringFromFile+= line;
    }
    br.close();
    return myStringFromFile;
}

其中fileName是路径。

String privatePem = "/sdcard/someFolder/someFile.txt";