我试图通过使用打开文件Intent.ACTION_GET_CONTENT.

根据Android版本/设备品牌,文件浏览器打开,我得到以下结果:
从Downloads以下位置选择文件:
content://com.android.providers.downloads.documents/document/446
Run Code Online (Sandbox Code Playgroud)
从Fotos以下位置选择文件:
content://media/external/images/media/309
Run Code Online (Sandbox Code Playgroud)
从FileCommander以下位置选择文件:
file:///storage/emulated/0/DCIM/Camera/20141027_132114.jpg
Run Code Online (Sandbox Code Playgroud)
我可以打开所有这些文件除了当我尝试打开从文件Downloads,,Audio,Afbeeldingen(图片)
我可能无法处理这种Uri: content://com.android.providers.downloads.documents/document/446
我试过以下的事情:
尝试使用以下代码打开文件:
public static String getRealPathFromURI_API19(Context context, Uri uri) {
Log.i("uri", uri.getPath());
String filePath = "";
if (uri.getScheme().equals("file")) {
return uri.getPath();
} else if (DocumentsContract.isDocumentUri(context, uri)) {
String wholeID = DocumentsContract.getDocumentId(uri);
Log.i("wholeID", wholeID);
// Split at colon, use second item in the array
String[] splits = wholeID.split(":");
if (splits.length == 2) {
String …Run Code Online (Sandbox Code Playgroud)我正在创建一个带有片段的导航抽屉活动的应用程序。在应用程序每次冷启动时,我都会执行一些初始化代码,并在其中加载以下内容:
这是冷启动时我的应用程序的流程:
在某些非活动状态下将应用程序置于前台后,Android会尝试重新启动当前的活动。这意味着我的初始化代码被绕过并被CoreActivity.onCreate()执行。
我的所有活动(MainActivity除外)都在扩展以下超级活动:
public abstract class MasterActivity extends AppCompatActivity {
@Override
protected final void onCreate(Bundle savedInstanceState) {
this.supportRequestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
if (!CrmContext.getInstance().verifyContextSet(this)) {
return;
}
super.onCreate(savedInstanceState);
onCreateAfterContext(savedInstanceState);
}
Run Code Online (Sandbox Code Playgroud)
在CrmContext中:
public boolean verifyContextSet(final Context context) {
boolean isContextSet = applicationContext != null;
if (isContextSet) {
return true;
}
Intent intent = new Intent(context, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
context.startActivity(intent);
return false;
}
Run Code Online (Sandbox Code Playgroud)
在verifyContextSet()我做一些检查,以确保应用程序已正确加载。如果用户会话未正确加载。
我的问题:
如果该应用程序位于最前面,则将 …