Android 常用的URI

一、关于联系人的一些URI:

管理联系人的Uri:

ContactsContract.Contacts.CONTENT_URI

管理联系人的电话的Uri:

ContactsContract.CommonDataKinds.Phone.CONTENT_URI

管理联系人的Email的Uri:

ContactsContract.CommonDataKinds.Email.CONTENT_URI

(注:Contacts有两个表,分别是rawContact和Data,

rawContact记录了用户的id和name,

其中id栏名称为:ContactsContract.Contacts._ID, name名称栏为ContactContract.Contracts.DISPLAY_NAME,

电话信息表的外键id为ContactsContract.CommonDataKinds.Phone.CONTACT_ID,

电话号码栏名称为:ContactsContract.CommonDataKinds.Phone.NUMBER.

data表中Email地址栏名称为:
ContactsContract.CommonDataKinds.Email.DATA
其外键栏为:ContactsContract.CommonDataKinds.Email.CONTACT_ID)

二、关于多媒体的一些URI:

存储在sd卡上的音频文件:

MediaStore.Audio.Media.EXTERNAL_CONTENT_URI

存储在手机内部存储器上的音频文件:

MediaStore.Audio.Media.INTERNAL_CONTENT_URI 
SD卡上的图片文件内容:

MediaStore.Audio.Images.EXTERNAL_CONTENT_URI

手机内部存储器上的图片:

MediaStore.Audio.Images.INTERNAL_CONTENT_URI

SD卡上的视频:

MediaStore.Audio.Video.EXTERNAL_CONTENT_URI

手机内部存储器上的视频:

MediaStore.Audio.Video.INTERNAL_CONTENT_URI

(注:图片的显示名栏:Media.DISPLAY_NAME,

图片的详细描述栏为:Media.DESCRIPTION

图片的保存位置:Media.DATA

短信URI:

Content://sms

发送箱中的短信URI:

Content://sms/outbox

收信箱中的短信URI:

Content://sms/sent

草稿中的短信URI:

Content://sms/draft

常用代码

// 查询通讯录中联系人?
 Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);

// 获取手机号
 Cursor phone = cursor.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID +"="+ ContactId, null, null);
// 复杂点:
 Cursor phone = cursor.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID +"="+ ContactId +" AND "+ ContactsContract.CommonDataKinds.Phone.TYPE +"="+ ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE, null, null);
ContactsContract.CommonDataKinds.Phone.TYPE 表示联系人电话的类型,

主要对应如下:
    TYPE_MOBILE : 手机号码
    TYPE_HOME : 住宅电话
    TYPE_WORK : 公司电话

打开一个网页,类别是Intent.ACTION_VIEW

 
Uri uri = Uri.parse("http://www.baidu.com/");

Intent intent = new Intent(Intent.ACTION_VIEW, uri);

打开地图并定位到一个点

 
Uri uri = Uri.parse("geo:52.76,-79.0342");

Intent intent = new Intent(Intent.ACTION_VIEW, uri);

打开拨号界面,类型是Intent.ACTION_DIAL

 
Uri uri = Uri.parse("tel:10086");

Intent intent = new Intent(Intent.ACTION_DIAL, uri);

直接拨打电话,与之不同的是,这个直接拨打电话,而不是打开拨号界面


Uri uri = Uri.parse("tel:10086");

Intent intent = new Intent(Intent.ACTION_CALL, uri);

卸载一个应用,Intent的类别是Intent.ACTION_DELETE

 
Uri uri = Uri.fromParts("package""xxx"null);

Intent intent = new Intent(Intent.ACTION_DELETE, uri);

安装应用程序,Intent的类别是Intent.ACTION_PACKAGE_ADDED


Uri uri = Uri.fromParts("package""xxx"null);

Intent intent = new Intent(Intent.ACTION_PACKAGE_ADDED, uri);

播放音频文件

 
Uri uri = Uri.parse("file:///sdcard/download/everything.mp3");

Intent intent = new Intent(Intent.ACTION_VIEW, uri);

intent.setType("audio/mp3");

打开发邮件界面

 
Uri uri= Uri.parse("mailto:[email protected]");

Intent intent = new Intent(Intent.ACTION_SENDTO, uri);

发邮件,不同是将邮件发送出去

 
Intent intent = new Intent(Intent.ACTION_SEND);

String[] tos = { "[email protected]" };

String[] ccs = { "[email protected]" };

intent.putExtra(Intent.EXTRA_EMAIL, tos);

intent.putExtra(Intent.EXTRA_CC, ccs);

intent.putExtra(Intent.EXTRA_TEXT, "I come from http://www.android-study.com");

intent.putExtra(Intent.EXTRA_SUBJECT, "http://www.android-study.com");intent.setType("message/rfc882");

Intent.createChooser(intent, "Choose Email Client");

//发送带附件的邮件

 
Intent intent = new Intent(Intent.ACTION_SEND);

intent.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");

intent.putExtra(Intent.EXTRA_STREAM, "file:///sdcard/mysong.mp3");

intent.setType("audio/mp3");

startActivity(Intent.createChooser(intent, "Choose Email Client"));

发短信

 
Uri uri= Uri.parse("tel:10086");

Intent intent = new Intent(Intent.ACTION_VIEW, uri);

intent.putExtra("sms_body""I come from http://www.android-study.com");

intent.setType("vnd.Android-dir/mms-sms");

直接发短信

 
Uri uri= Uri.parse("smsto://100861");

Intent intent = new Intent(Intent.ACTION_SENDTO, uri);

intent.putExtra("sms_body""3g android http://www.android-study.com");

发彩信

 
Uri uri= Uri.parse("content://media/external/images/media/23");

Intent intent = new Intent(Intent.ACTION_SEND);

intent.putExtra("sms_body""3g android http://www.android-study.com");

intent.putExtra(Intent.EXTRA_STREAM, uri);

intent.setType("image/png");

# Market 相关


1 //寻找某个应用

Uri uri = Uri.parse("market://search?q=pname:pkg_name");

Intent it = new Intent(Intent.ACTION_VIEW, uri);

startActivity(it);

//where pkg_name is the full package path for an application

2 //显示某个应用的相关信息

Uri uri = Uri.parse("market://details?id=app_id");

Intent it = new Intent(Intent.ACTION_VIEW, uri);

startActivity(it);

//where app_id is the application ID, find the ID

//by clicking on your application on Market home

//page, and notice the ID from the address bar

路径规划

 
Uri uri = Uri.parse("http://maps.google.com/maps?f=d&saddr=startLat%20startLng&daddr=endLat%20endLng&hl=en");

Intent it = new Intent(Intent.ACTION_VIEW, uri);

startActivity(it);

//where startLat, startLng, endLat, endLng are a long with 6 decimals like: 50.123456

安装指定apk

 
public void setupAPK(String apkname){

    String fileName = Environment.getExternalStorageDirectory() + "/" + apkname;

    Intent intent = new Intent(Intent.ACTION_VIEW);

    intent.setDataAndType(Uri.fromFile(new File(fileName)),"application/vnd.android.package-archive");

    mService.startActivity(intent);

}

进入联系人页面


Intent intent = new Intent();

intent.setAction(Intent.ACTION_VIEW);

intent.setData(People.CONTENT_URI);

startActivity(intent);

查看指定联系人

 
Uri personUri = ContentUris.withAppendedId(People.CONTENT_URI, info.id);// info.id联系人ID

Intent intent = new Intent();

intent.setAction(Intent.ACTION_VIEW);

intent.setData(personUri);

startActivity(intent);

调用相册

 
public static final String MIME_TYPE_IMAGE_JPEG = "image/*";

public static final int ACTIVITY_GET_IMAGE = 0;

Intent getImage = new Intent(Intent.ACTION_GET_CONTENT);

getImage.addCategory(Intent.CATEGORY_OPENABLE);

getImage.setType(MIME_TYPE_IMAGE_JPEG);

startActivityForResult(getImage, ACTIVITY_GET_IMAGE);

调用系统相机应用程序,并存储拍下来的照片

 
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

time = Calendar.getInstance().getTimeInMillis();

intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(Environment

.getExternalStorageDirectory().getAbsolutePath()+"/tucue", time + ".jpg")));

startActivityForResult(intent, ACTIVITY_GET_CAMERA_IMAGE);

<uses-permission android:name="android.permission.READ_CONTACTS"/>

时间: 2024-12-09 20:40:23

Android 常用的URI的相关文章

Android常用系统Uri

就Android平台而言,URI主要分三个部分:scheme, authority and path.其中authority又分为host和port.格式如下:scheme://host:port/path举个实际的例子:content://com.example.project:200/folder/subfolder/etc\---------/  \---------------------------/ \---/ \--------------------------/scheme  

[转载]android常用的API接口调用

原文地址:android常用的API接口调用作者:宋耀 显示网页:         Uri uri = Uri.parse("http://www.google.com"); Intent it = new Intent(Intent.ACTION_VIEW,uri); startActivity(it);显示地图: Uri uri = Uri.parse("geo:38.899533,-77.036476"); //Uri uri = Uri.parse(&quo

Android常用的工具类

主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java.目前包括HttpUtils.DownloadManagerPro.ShellUtils.PackageUtils.PreferencesUtils.JSONUtils.FileUtils.ResourceUtils.StringUtils.ParcelUtils.RandomUtils.ArrayUtils.ImageUtils.ListUtils.MapUtils.ObjectUtils.SerializeUtils.S

Android常用功能代码块

1.设置activity无标题,全屏 // 设置为无标题栏 requestWindowFeature(Window.FEATURE_NO_TITLE); // 设置为全屏模式 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 2.获得屏幕高度和宽度 //获取屏幕的高度和宽度用到WindowManager这个类 WindowMan

Android常用的图片加载库

 Android常用的图片加载库 前言:图片加载涉及到图片的缓存.图片的处理.图片的显示等.四种常用的图片加载框架,分别是Fresco.ImageLoader. Picasso. Glide. Universal Image Loader:ImageLoader是比较老的框架,一个强大的图片加载库,包含各种各样的配置,最老牌,使用也最广泛. ImageLoader开源库存哪些特征: 1.多线程下载图片,图片可以来源于网络,文件系统,项目文件夹assets中以及drawable中等 2.支持随意的

Android常用工具类(收藏)

Android常用工具类 主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java. 目前包括(HttpUtils.DownloadManagerPro.ShellUtils.PackageUtils.PreferencesUtils.JSONUtils.FileUtils.ResourceUtils.StringUtils.ParcelUtils.RandomUtils.ArrayUtils.ImageUtils.ListUtils.MapUtils.ObjectUtils.S

Android常用面试题大全

1.TCP和UDP之间的区别?什么是URL ? TCP被称为用户数据报协议;UDP被称为信息传输控制协议;URL被称为统一资源定位符,通过统一资源定位符可以唯一定位到互联网上的某个资源(图片.视频.音频和网页等). 2.成员方法和构造方法有什么区别? 成员方法必须有返回类型,即使是没有返回,也要写上void:构造函数没有返回类型,而且和类名一样. 3.什么是栈? 栈是一种先进后出的线性表,只要符合先进后出的原则的线性表都是栈.至于采用的存储方式(实现方式)是顺序存储(顺序栈)还是链式存储(链式栈

Android常用控件:进度条

各种进度条属于 ProgressBar的子类 Sytle: 水平风格:Horizontal小风格:Small大风格:Large反向风格:Inverse小反向风格:Small.Inverse大反向风格:Large.Inverse 设置style:   style="?android:attr/progressBarStyle..." 主要属性:最大值:max当前进度:progress次要进度值:SecondaryProgress --效果类似于看电影那些缓冲 判断进度条是转圈还是水平的方

Android常用adb命令总结

Android 常用 adb 命令总结 首发个人博客 http://xuxu1988.com/2015/05/15/android-adb-commands , 转载请注明出处. 针对移动端 Android 的测试, adb 命令是很重要的一个点,必须将常用的 adb 命令熟记于心, 将会为 Android 测试带来很大的方便,其中很多命令将会用于自动化测试的脚本当中. Android Debug Bridge adb 其实就是 Android Debug Bridge, Android 调试桥