我試圖獲取Android設備的內部存儲路徑。Environment.getExternalStorageDirectory()返回null
因爲大多數設備晚點返回使用Environment.getExternalStorageDirectory().getPath();
的內部存儲路徑,所以我使用它來獲取路徑。
除了當我從一個非Activity類調用Environment.getExternalStorageDirectory().getPath();
它返回null,而如果我從一個Activity類調用它返回正確的路徑,每件事情都很好。
我嘗試搜索其他帖子,但找不到任何有用的東西。
任何幫助都會很感激。
編輯:
if(getExtSdCardPath(con)!=null)
{ path=getExtSdCardPath(con);
if(new File(path).getPath().equal(Environment.getExternalStorageDirectory().getPath())) // This line give null "Null Pointer exception"
{
return null;
}
return path;
}
我檢查,如果SD卡路徑是一樣的,其是由Environment.getExternalStorageDirectory().getPath()
'Environment.getExternalStorageDirectory()'不不涉及'Context',所以它的結果不應該根據調用的地方而改變。請提供[mcve]演示如何使用'Environment.getExternalStorageDirectory()'以及如何確定它正在返回'null'。 – CommonsWare
@CommonsWare我添加了一些額外的信息。你能看看嗎? – Rahulrr2602
我認爲'path'更可能是'null',所以'new File(path).getPath()'是'null'。順便說一下,'new File(path).getPath()'是毫無意義的 - 用'path'代替它會更快。而且,請注意'getExternalStorageDirectory()'與大多數Android設備上的「ext sd card」無關。 – CommonsWare