當前位置:首頁 » 安卓系統 » androidfileuri

androidfileuri

發布時間: 2022-05-10 10:36:03

㈠ android如何通過path得到uri

最近做項目要通過圖片的絕對路徑找到圖片的URI,然後刪除圖片,小小總結一下獲取URI的方法,親自試驗在

android 4.1.3的系統上都是可用的。

1.將所有的圖片路徑取出,遍歷比較找到需要的路徑,取出URI,效率較低

其中 MediaStore.MediaColumns.DATA 欄位存的就是圖片的絕對路徑,

最後mImageUri得到的就是圖片的URI

1 Uri mUri = Uri.parse("content://media/external/images/media");

2 Uri mImageUri = null;

3 Cursor cursor = managedQuery(

4 MediaStore.Images.Media.EXTERNAL_CONTENT_URI, null, null, null,

5 MediaStore.Images.Media.DEFAULT_SORT_ORDER);

6 cursor.moveToFirst();

7

8 while (!cursor.isAfterLast()) {

9 String data = cursor.getString(cursor

10 .getColumnIndex(MediaStore.MediaColumns.DATA));

11 if (picPath.equals(data)) {

12 int ringtoneID = cursor.getInt(cursor

13 .getColumnIndex(MediaStore.MediaColumns._ID));

14 mImageUri = Uri.withAppendedPath(mUri, "" + ringtoneID);

15 break;

16 }

17 cursor.moveToNext();

18 }2.直接從媒體資料庫根據欄位取出相應的記錄,效率較高

1 //TYLT: add by anyf 20121027 start

2 String type = Utils.ensureNotNull(intent.getType());

3 Log.d(TAG, "uri is " + uri);

4 if (uri.getScheme().equals("file") && (type.contains("image/")))
{

5 String path = uri.getEncodedPath();

6 Log.d(TAG, "path1 is " + path);

7 if (path != null) {

8 path = Uri.decode(path);

9 Log.d(TAG, "path2 is " + path);

10 ContentResolver cr = this.getContentResolver();

11 StringBuffer buff = new StringBuffer();

12 buff.append("(")

13 .append(Images.ImageColumns.DATA)

14 .append("=")

15 .append("'" + path + "'")

16 .append(")");

17 Cursor cur = cr.query(

18 Images.Media.EXTERNAL_CONTENT_URI,

19 new String[] { Images.ImageColumns._ID },

20 buff.toString(), null, null);

21 int index = 0;

22 for (cur.moveToFirst(); !cur.isAfterLast(); cur

23 .moveToNext()) {

24 index = cur.getColumnIndex(Images.ImageColumns._ID);

25 // set _id value

26 index = cur.getInt(index);

27 }

28 if (index == 0) {

29 //do nothing

30 } else {

31 Uri uri_temp = Uri

32 .parse("content://media/external/images/media/"

33 + index);

34 Log.d(TAG, "uri_temp is " + uri_temp);

35 if (uri_temp != null) {

36 uri = uri_temp;

37 }

38 }

39 }

40 }

41 //TYLT: add by anyf 20121027 end3.直接根據路徑通過 ContentProvider 的 delete() 方法刪除圖片,兩行代碼搞定,效率最高

1 String params[] = new String[]{filepath};

2
ctx.getContentResolver().delete(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
MediaStore.Images.Media.DATA + " LIKE ?", params);

㈡ Android assets或res/raw等目錄下的某文件Uri要怎麼寫

在Android中不能直接打開res aw目錄中的資料庫文件, 而需要在程序第一次啟動時將該文件復制到手機內存或SD卡的某個目錄中, 然後再打開該資料庫文件。復制的基本方法是使用getResources().openRawResource方法獲 得res aw目錄中資源的 InputStr

㈢ Android怎麼調用系統相冊將選中的圖片設置為布局的背景,有沒有案例或源碼

Android中調用系統相機來拍攝照片的代碼,如下:
1、首先設置Uri獲取判斷以及相機請求Code
public final int TYPE_TAKE_PHOTO = 1;//Uri獲取類型判斷

public final int CODE_TAKE_PHOTO = 1;//相機RequestCode
2、調起系統相機
Intent takeIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
Uri photoUri = getMediaFileUri(TYPE_TAKE_PHOTO);
takeIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);
startActivityForResult(takeIntent, CODE_TAKE_PHOTO);
3、封裝獲取Uri代碼
public Uri getMediaFileUri(int type){
File mediaStorageDir = new File(Environment.(Environment.DIRECTORY_PICTURES), "相冊名字");
if (!mediaStorageDir.exists()) {
if (!mediaStorageDir.mkdirs()) {
return null;
}
}
//創建Media File
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
File mediaFile;
if (type == TYPE_TAKE_PHOTO) {
mediaFile = new File(mediaStorageDir.getPath() + File.separator + "IMG_" + timeStamp + ".jpg");
} else {
return null;
}
return Uri.fromFile(mediaFile);
}
4、相機拍照完畢後獲取返回數據,並在頁面顯示照片
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case CODE_TAKE_PHOTO:
if (resultCode == RESULT_OK) {
if (data != null) {
if (data.hasExtra("data")) {
Log.i("URI", "data is not null");
Bitmap bitmap = data.getParcelableExtra("data");
imageView.setImageBitmap(bitmap);//imageView即為當前頁面需要展示照片的控制項,可替換
}
} else {
Log.i("URI", "Data is null");
Bitmap bitmap = BitmapFactory.decodeFile(fileUri.getPath());
imageView.setImageBitmap(bitmap);//imageView即為當前頁面需要展示照片的控制項,可替換
}
}
break;
}
}
特殊:
一般情況,以上代碼在Android7.0以下,也就是api<24時,運行是沒有任何問題的。可是當targetSdkVersion變成24及其以上並且在android7.0(及以上版本)系統運行時,會拋出異常:FileUriExposedException。

㈣ android中uri怎麼轉換成文件路徑

方法1、用URLDecode解碼就可以了。
String code = "D:/%e5%ad%a6%e6%b5%b7/My%20Course/%e8%ae%a1%e7%ae%97%e4%b8%8e%e8%bd%af%e4%bb%b6%e5%b7%a5%e7%a8%8b/java%20workspace/my Project/bin/";
try{
String src=URLDecoder.decode(code,"UTF-8");//注意編碼和輸入時一致
System.out.print(src);
}catch (UnsupportedEncodingException e){
e.printStackTrace();
}
======
顯示:
D:/學海/My Course/計算與軟體工程/Java workspace/my Project/bin/

方法2:URI有自己的getPath方法,直接返回的就是解碼後的路徑
比如System.out.print(url.getPath());

㈤ android bitmap對象怎樣轉化成uri



publicstaticUribitmap2uri(Contextc,Bitmapb){
Filepath=newFile(c.getCacheDir()+File.separator+System.currentTimeMillis()+".jpg");
try{
OutputStreamos=newFileOutputStream(path);
b.compress(Bitmap.CompressFormat.JPEG,100,os);
os.close();
returnUri.fromFile(path);
}catch(Exceptionignored){
}
returnnull;
}

㈥ android中文件uri和url的區別

URL是uniform resource locator,統一資源定位器,它是一種具體的URI,即URL可以用來標識一個資源,而且還指明了如何locate這個資源。而URN,uniform resource name,統一資源命名,是通過名字來標識資源,比如mailto:[email protected]。也就是說,URI是以一種抽象的,高層次概念定義統一資源標識,而URL和URN則是具體的資源標識的方式。URL和URN都是一種URI。

㈦ 如何通過文件絕對地址獲得文件的Uri-Android開發問答

我的實現方法:用絕對路徑和MediaStore里的MediaStore.Audio.Media.DATA列進行比較 如果相同
就取出對應的MediaStore.Audio.Media._ID,然後uri就是Uri.parse("content://media/external/audio/media/"+id),這樣就可以設置鈴聲了。

㈧ android 中的uri到底是什麼

URI是統一資源標識符(Uniform Resource Identifier) 的意思,它的作用是根據這個URI找到某個資源文件,基本格式如: file:///sdcard/temp.jpg(就是根據你提供的例子生成的一個路徑)
ContentProvider是程序間共享數據的,它也需要生成URI供別的程序調用,格式如:

content:///StudentDB/student/name,以後你在別的程序想訪問另一個程序里的資料庫,就可以用這個URI去訪問了,而不用進行資料庫連接的操作,非常方便
URL顯得很宏觀,是網路資源定位的,而URI是應用程序內部或之間定位

㈨ 安卓開發怎麼把file的uri轉化成content類型的

朋友,既然要掃描手機中的所有圖片信息,而圖片不一定全在SD卡中的,所以有的cursor返回null,有的卻不為null。那麼我覺得你這個問題就是判斷cursor是否為null即可啊,為null提示用戶就可以了啊。 也可以吧軟體設計成必須要有sd卡,否則直接提示用戶插入sd卡。 Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED); 這是判斷sd卡是否存在並可用的語句,如果可用就繼續你的讀圖片邏輯,如果不可用,直接對話框或者吐司提示。 純手打,謝謝採納,祝開發愉快。

熱點內容
三國志戰略版打9級礦什麼配置 發布:2025-05-15 11:41:29 瀏覽:951
安卓加速器怎麼關 發布:2025-05-15 11:38:16 瀏覽:464
密碼鎖壞了如何打開 發布:2025-05-15 11:30:19 瀏覽:837
怎樣增加共享文件夾連接數量 發布:2025-05-15 11:24:50 瀏覽:961
安卓如何關閉單應用音量 發布:2025-05-15 11:22:31 瀏覽:351
抖音電腦後台伺服器中斷 發布:2025-05-15 11:11:59 瀏覽:307
sql2008伺服器 發布:2025-05-15 11:03:27 瀏覽:306
我的世界pe伺服器創造 發布:2025-05-15 10:51:17 瀏覽:608
移動端打吃雞要什麼配置 發布:2025-05-15 10:48:16 瀏覽:756
我的世界哪五個伺服器被炸了 發布:2025-05-15 10:36:16 瀏覽:994