我有Uri for Image文件.
我使用此代码从Uri获取文件路径:
public String getRealPathFromURI(Uri contentUri) {
Cursor cursor = null;
try {
String[] proj = { MediaStore.Images.Media.DATA };
cursor = mContext.getContentResolver().query(contentUri, proj, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
} catch (Exception e) {
Log.message(e.getMessage());
} finally {
if (cursor != null) {
cursor.close();
}
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
如果我从Gallery应用程序(Android 4.4.2,arm-emu)中选择图像,
uri.getPath = /external/images/media/16 and it work's fine (My file path: /storage/sdcard/Download/0_cf15a_7800a7e5_orig.jpg)
Run Code Online (Sandbox Code Playgroud)
如果我从Documents app(Android 4.4.2,arm-emu)中选择图像,
I have uri.getPath = /document/image:16 and function getRealPathFromURI returns …Run Code Online (Sandbox Code Playgroud) 我尝试使用谷歌架构的房间库.我根据谷歌的BasicSample写了几个代码,但是没有创建数据库(对于我的代码).Logcat不包含错误和异常.请帮我找出错误:
//App.java
//...
public class App extends Application {
private AppExecutors mAppExecutors;
private static final String TAG = "App";
@Override
public void onCreate() {
super.onCreate();
Log.i(TAG, "onCreate: enter");
mAppExecutors = new AppExecutors();
getDatabase();
}
public AppDatabase getDatabase() {
return AppDatabase.getInstance(this, mAppExecutors);
}
}
Run Code Online (Sandbox Code Playgroud)
我的AppDatabase类看起来:
//AppDatabase.java
//...
@Database(entities = {Camera.class}, version = 1)
public abstract class AppDatabase extends RoomDatabase {
private static final String DATABASE_NAME = "mydatabase";
private static AppDatabase sInstance;
private AppExecutors mExecutors;
public abstract CameraDao cameraModel();
public static AppDatabase …Run Code Online (Sandbox Code Playgroud)