我在SD卡「firmware.PTI」中有一個文件。而且我正在從我的應用程序瀏覽這個文件。以下是我正在使用的代碼。如何用文件名從SD卡獲取文件的實際路徑?
@Override
public void onClick(View v) {
int id = v.getId();
switch (id) {
case R.id.btn_browse_pti_file:
Intent mediaIntent = new Intent(Intent.ACTION_GET_CONTENT);
mediaIntent.setType("*/*"); //set mime type as per requirement
startActivityForResult(mediaIntent, REQ_CODE_FOR_PTI);
break;
}
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQ_CODE_FOR_PTI && resultCode == Activity.RESULT_OK) {
Uri uriPTI = data.getData();
String path = Utility.getRealPathFromURI(getActivity(), uriPTI);
Log.i(CLASSTAG, "PTI file path: "+path);
mTvBrowsePath.setText(path);
}
}
public static String getRealPathFromURI(Context context, Uri contentUri) {
String path = null;
if (contentUri != null)
{
path = contentUri.toString();
if (path.toLowerCase().startsWith("file://"))
{
// Selected file/directory path is below
path = (new File(URI.create(path))).getAbsolutePath();
}
}
return path;
}
如果我選擇任何其他文件,如JPEG或PNG,它工作正常,並顯示正確的路徑與文件名。但是,如果我選擇任何.PTI文件,那麼它會崩潰。我該如何解決這個問題?
'它正在墜毀'。在哪一刻?在哪個聲明?哪個例外?請張貼logcat。用戶選擇哪個應用程序來選擇文件? – greenapps 2015-02-23 15:15:46