URI是统一资源标识符(Uniform Resource Identifier) 的意思,它的作用是根据这个URI找到某个资源文件,基本格式如: file:///sdcard/tempjpg(就是根据你提供的例子生成的一个路径)
ContentProvider是程序间共享数据的,它也需要生成URI供别的程序调用,格式如:
content:///StudentDB/student/name,以后你在别的程序想访问另一个程序里的数据库,就可以用这个URI去访问了,而不用进行数据库连接的 *** 作,非常方便
URL显得很宏观,是网络资源定位的,而URI是应用程序内部或之间定位
从URI获得文件路径:
string myImageUrl = "content://media/external/images/media/";Uri uri = Uriparse(myImageUrl); String[] proj = { MediaStoreImagesMediaDATA }; Cursor actualimagecursor = thisctxmanagedQuery(uri,proj,null,null,null); int actual_image_column_index = actualimagecursorgetColumnIndexOrThrow(MediaStoreImagesMediaDATA); actualimagecursormoveToFirst(); String img_path = actualimagecursorgetString(actual_image_column_index);
File file = new File(img_path);Uri fileUri = UrifromFile(file);
xamarin怎样获取android外卡路径
一部分手机将eMMC存储挂载到 /mnt/external_sd 、/mnt/sdcard2 等节点,而将外置的SD卡挂载到 EnvironmentgetExternalStorageDirectory()这个结点。
此时,调用EnvironmentgetExternalStorageDirectory(),则返回外置的SD的路径。
android 怎样动态的获取sd卡路径链接电脑USB调试情况下,在电脑上有新的磁盘显示,一个SD的,一个手机的,打开SD的就可以找各文件夹路径
Android怎样获取外部存储器路径读写sdcard上的文件
其中读写步骤按如下进行:
1、调用Environment的getExternalStorageState()方法判断手机上是否插了sd卡,且应用程序具有读写SD卡的权限,如下代码将返回true
EnvironmentgetExternalStorageState()equals(EnvironmentMEDIA_MOUNTED)
2、调用EnvironmentgetExternalStorageDirectory()方法来获取外部存储器,也就是SD卡的目录,或者使用"/mnt/sdcard/"目录
3、使用IO流 *** 作SD卡上的文件
注意点:手机应该已插入SD卡,对于模拟器而言,可通过mksdcard命令来创建虚拟存储卡
必须在AndroidManifestxml上配置读写SD卡的权限
<uses-permission android:name="androidpermissionMOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permission android:name="androidpermissionWRITE_EXTERNAL_STORAGE"/>
我怎样才能获得外部SD卡路径为Android 40 +1 我想你需要这个外部SD卡:
new File("/mnt/external_sd/")
或
new File("/mnt/extSdCard/")
你的情况
在更换EnvironmentgetExternalStorageDirectory()您的作品,应在MNT目录优先和工作在那里检查什么
你键入选择哪个SD卡
File storageDir = new File("/mnt/");
if(storageDirisDirectory()){
String[] dirList = storageDirlist();
TODO some type of selecton method
}
怎样获取class路径
import javaioFile;
public class FileTest {
public static void main(String[] args) throws Exception {
Systemoutprintln(ThreadcurrentThread()getContextClassLoader()
getResource(""));
Systemoutprintln(FileTestclassgetClassLoader()getResource(""));
Systemoutprintln(ClassLoadergetSystemResource(""));
Systemoutprintln(FileTestclassgetResource(""));
Systemoutprintln(FileTestclassgetResource("/"));
Class文件所在路径
Systemoutprintln(new File("/")getAbsolutePath());
Systemoutprintln(SystemgetProperty("userdir"));
Systemoutprintln(SystemgetProperty("fileencoding"));
}
}
android 怎么获取相册路径
android手机42版本之前是一个方法,大于42版本又是一个方法。
注意:现在手机市场android版本2015面上半年平均44,现在是平均50了。
before
你百度一下,都能查到,很简单
after
private void startPickPhotoActivity() {
Intent intent = new Intent(IntentACTION_OPEN_DOCUMENT);
intentsetType("image/"); Or 'image/ jpeg '
startActivityForResult(intent, RESULT_PICK_PHOTO_NORMAL);
}
获得返回的路径
@Override
protected void onActivityResult(int requestCode, int resultCode,
Intent data) {
if (requestCode == RESULT_PICK_PHOTO_NORMAL) {
if (resultCode == RESULT_OK && data != null) {
选中路径
mFileName = MainActivitygetPath(getApplicationContext(),
datagetData());
if (""equals(mFileName)) {
return;
}
Intent intent = new Intent(this, EditActivityclass);
intentputExtra("pathName", mFileName);
startActivity(intent);
}
}
}
@TargetApi(BuildVERSION_CODESKITKAT)
public static String getPath(final Context context, final Uri uri) {
final boolean isKitKat = BuildVERSIONSDK_INT >= BuildVERSION_CODESKITKAT;
DocumentProvider
if (isKitKat && DocumentsContractisDocumentUri(context, uri)) {
ExternalStorageProvider
if (UriUtilsisExternalStorageDocument(uri)) {
final String docId = DocumentsContractgetDocumentId(uri);
final String[] split = docIdsplit(":");
final String type = split[0];
if ("primary"equalsIgnoreCase(type)) {
return EnvironmentgetExternalStorageDirectory() + "/"
+ split[1];
}
}
DownloadsProvider
else if (UriUtilsisDownloadsDocument(uri)) {
final String id = DocumentsContractgetDocumentId(uri);
final Uri contentUri = ContentUriswithAppendedId(
Uriparse("content:downloads/public_downloads"),
LongvalueOf(id));
return UriUtilsgetDataColumn(context, contentUri, null, null);
}
MediaProvider
else if (UriUtilsisMediaDocument(uri)) {
final String docId = DocumentsContractgetDocumentId(uri);
final String[] split = docIdsplit(":");
final String type = split[0];
Uri contentUri = null;
if ("image"equals(type)) {
contentUri = MediaStoreImagesMediaEXTERNAL_CONTENT_URI;
} else if ("video"equals(type)) {
contentUri = MediaStoreVideoMediaEXTERNAL_CONTENT_URI;
} else if ("audio"equals(type)) {
contentUri = MediaStoreAudioMediaEXTERNAL_CONTENT_URI;
}
final String selection = MediaColumns_ID + "=";
final String[] selectionArgs = new String[] { split[1] };
return UriUtilsgetDataColumn(context, contentUri, selection,
selectionArgs);
}
}
MediaStore (and general)
else if ("content"equalsIgnoreCase(urigetScheme())) {
Return the remote address
if (UriUtilsisGooglePhotosUri(uri))
return urigetLastPathSegment();
return UriUtilsgetDataColumn(context, uri, null, null);
}
File
else if ("file"equalsIgnoreCase(urigetScheme())) {
return urigetPath();
}
return null;
}
如何获取android sdcard路径EnvironmentgetExternalStorageDirectory()
android怎么获取U盘路径用Re管理器进入/mnt/目录一个一个找
android怎么获取分区路径我们可以在adb中使用df 来查看分区情况。
1、跨分区不能用 MV命令来拷贝。但是可以用CP命令。如PWD,当前目录为:/data/local/tmp 。
此目录下有个busybox和1txt文件。则利用CP命令拷贝如下:/busybox cp1txt /system
2、Android的用户组有 System, root, shell
3、怎么样才能 *** 作分区。
分区 *** 作是需要权限的。一般来说System分区的权限限制得比较严,Data分区限制比较严,用户可以 *** 作的目录有local,app目录。比如/data/local/tmp
data分区常用目录:app , system , data ,local,misc 其中system,local可以进入并使用ls等命令。data,app可以进入,但不能用ls命令。
data/data目录:存放的是所有APK程序数据的目录,每个APK对就一个自己的Data目录,就是在data/data/目录下,会产生一个跟Package一样的目录。如有一个APK,它的包名叫testhello则,在data/data/目录下会有一个testhello的目录,这个APK只能 *** 作此目录,不能 *** 作其它APK的目录这个在LINUX下叫做用户进程只能 *** 作自己的进程目录
data/app目录:用户安装的APK放在这里。我们如果把APK放入这个文件夹下面的话,就算安装好了。这就叫静默安装。不用管APK文件里面的lib目录下的库文件,系统会自动帮我们放入调用库的。
data/system目录下面有packagesxml ,packageslist,appwidgetsxml, 等等一些记录手机安装的软件,Widget等信息。
data/misc目录:保存WIFI帐号,***设置信息等。如保存了一个WIFI连接帐号,则此目录下的WIFI目录下面可以查看到。
system分区常用目录: app , lib, xbin, bin , media,framework
system/app目录:存放系统自带的APK。没有测试过是否将APK放入到System/app目录下,也是静默安装APK。?
system/lib目录:存放APK程序用到的库文件。
system/bin目录和system/xbin目录:存放的是shell命令。
system/framework目录:启用Android系统所用到框架,如一些jar文件。
4 Android下面的目录都是有权限的,要 *** 作目录都需要有此权限才能 *** 作,如果没有,则使用chomd777来修改如果是分区根目录,如/data分区, /system分区都没有权限,则需要重新挂载 使用 mount -oremount XX
Android调用系统拍照的代码:
创建Intent Intent openCameraIntent = new Intent(MediaStoreACTION_IMAGE_CAPTURE);
String imagePath = EnvironmentgetExternalStorageDirectory() + "/image" ;
设置文件路径 File file = new File(imagePath);
if(!fileexists()){
filemkdirs(); }
设置URI,指定相册拍照后保存的路径,Uri imageUri = UrifromFile(new File(imagePath, "imagejsp"));
openCameraIntentputExtra(MediaStoreEXTRA_OUTPUT, imageUri);
startActivityForResult(openCameraIntent, REQUEST_CODE_TAKING_PICTURES);
拍照完以后,文件就会保存在这个指定的目录下了。Uri 里指定了相机拍照的路径。
以上就是关于android 中的uri到底是什么全部的内容,包括:android 中的uri到底是什么、android中调用系统的图片浏览器后,返回了下面这样的uri----content://media/external/images/media/2、xamarin怎样获取android外卡路径等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)