在Android 4.4(KitKat)中访问新图库之前,我使用此方法在SD卡上获得了真正的路径:
public String getPath(Uri uri) {
String[] projection = { MediaStore.Images.Media.DATA };
Cursor cursor = managedQuery(uri, projection, null, null, null);
startManagingCursor(cursor);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
Run Code Online (Sandbox Code Playgroud)
现在,Intent.ACTION_GET_CONTENT返回不同的数据:
之前:
content://media/external/images/media/62
Run Code Online (Sandbox Code Playgroud)
现在:
content://com.android.providers.media.documents/document/image:62
Run Code Online (Sandbox Code Playgroud)
我怎么能设法获得SD卡上的真实路径?
我想提取绝对路径的名称.如果我有一个值为/ mnt/sdcard/Videos/Videoname的字符串,我想保存一个值为Videoname的字符串.
字符串正在改变,我以前无法获得斜线数.我怎么能从最后一个斜线中分割一个子串?
/ mnt/sdcard/Videos/Videoname - > Videnoname
根据这篇博文,我构建了我的Android ffmpeg项目.我用我的Java代码用静态库和jni函数编写了本机代码.当我运行这部分代码时,我获得了下一个logcat,知道为什么我的进程会被信号终止?
03-14 11:16:06.488: I/DEBUG(31): *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
03-14 11:16:06.488: I/DEBUG(31): Build fingerprint: generic/google_sdk/generic:2.3.4/GINGERBREAD/123630:eng/test-keys'
03-14 11:16:06.488: I/DEBUG(31): pid: 377, tid: 377 >>> com.testffmpeg <<<
03-14 11:16:06.488: I/DEBUG(31): signal 4 (SIGILL), code 1 (ILL_ILLOPC), fault addr 80a98f10
03-14 11:16:06.488: I/DEBUG(31): r0 002b0030 r1 80b1c410 r2 00030d40 r3 00000000
03-14 11:16:06.488: I/DEBUG(31): r4 00000000 r5 002b0030 r6 00000010 r7 00000010
03-14 11:16:06.488: I/DEBUG(31): r8 be877308 r9 7fffffff 10 …