我使用此方法在使用我的应用程序拍摄后扫描文件媒体:
public static void refreshMedia() {
MediaScannerConnection.scanFile(this,
new String[] { photo.toString() }, null,
new MediaScannerConnection.OnScanCompletedListener() {
public void onScanCompleted(String path, Uri uri) {
Log.i("ExternalStorage", "Scanned " + path + ":");
Log.i("ExternalStorage", "-> uri=" + uri);
}
});
}
现在我需要检索作为此方法参数的uri ..我该怎么做?因为我需要在另一个班级使用uri ..
答案 0 :(得分:1)
private static Uri mUri; // private variable in your class
....
public static void refreshMedia() {
MediaScannerConnection.scanFile(this,
new String[] { photo.toString() }, null,
new MediaScannerConnection.OnScanCompletedListener() {
public void onScanCompleted(String path, Uri uri) {
mUri = uri; //<--Add this line to assign uri to mUri
Log.i("ExternalStorage", "Scanned " + path + ":");
Log.i("ExternalStorage", "-> uri=" + uri);
}
});
}
修改强>
在开始新意图之前:
Intent i = new Intent(FirstScreen.this, SecondScreen.class);
i.putExtra("MY_Uri", mUri);
在其他课程中:
String mUri; //private variable
在onCreate()
内:
Bundle extras = getIntent().getExtras();
if(extras == null) {
mUri= null;
} else {
mUri= extras.getString("MY_Uri");
}
答案 1 :(得分:1)
使用getter和setter在类级别创建一个static
变量。
private static Uri uri;
然后存储uri
以从其他地方获取此值。
public static void refreshMedia() {
MediaScannerConnection.scanFile(this,
new String[] { photo.toString() }, null,
new MediaScannerConnection.OnScanCompletedListener() {
public void onScanCompleted(String path, Uri uri) {
YourClassName.uri=uri; // store uri
Log.i("ExternalStorage", "Scanned " + path + ":");
Log.i("ExternalStorage", "-> uri=" + uri);
}
});
}