今天需要写一个跳转到系统拨号页面的功能,其实简单的很,就一句话的事儿。不过念在系统页面众多,于是乎,在此做一个总结,万一以后忘记了,也方便查阅。

系统页面

跳转浏览器浏览网页

Uri uri = Uri.parse("http://www.google.com");
Intent intent   = new Intent(Intent.ACTION_VIEW,uri);
startActivity(intent);

拨打电话


//第一种方法
Uri uri = Uri.parse("tel:xxxxxx");
Intent it = new Intent(Intent.ACTION_DIAL, uri);
startActivity(it);
//第二种方法
Uri uri = Uri.parse("tel:"+number);
Intent intent = new Intent(Intent.ACTION_CALL,uri);
startActivity(intent);  

调用发短信的程序

Intent it = new Intent(Intent.ACTION_VIEW);
it.putExtra("sms_body", "The SMS text");
it.setType("vnd.android-dir/mms-sms");
startActivity(it);
和
uri = Uri.parse("smsto:"+要发送短信的对方的number);
intent = new Intent(Intent.ACTION_SENDTO,uri);
startActivity(intent);
和
mIntent = new Intent(Intent.ACTION_VIEW);
mIntent.putExtra("address", c.getString(c.getColumnIndex(column)));
mIntent.setType("vnd.android-dir/mms-sms");
startActivity(mIntent);   

发送短信

Uri uri = Uri.parse("smsto:0800000123");
Intent it = new Intent(Intent.ACTION_SENDTO, uri);
it.putExtra("sms_body", "The SMS text");
startActivity(it);
String body="this is sms demo";
Intent mmsintent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts("smsto", number, null));
mmsintent.putExtra(Messaging.KEY_ACTION_SENDTO_MESSAGE_BODY, body);
mmsintent.putExtra(Messaging.KEY_ACTION_SENDTO_COMPOSE_MODE, true);
mmsintent.putExtra(Messaging.KEY_ACTION_SENDTO_EXIT_ON_SENT, true);
startActivity(mmsintent);

播放多媒体

Intent it = new Intent(Intent.ACTION_VIEW);
Uri uri = Uri.parse("file:///sdcard/song.mp3");
it.setDataAndType(uri, "audio/mp3");
startActivity(it);
Uri uri = Uri.withAppendedPath(MediaStore.Audio.Media.INTERNAL_CONTENT_URI, "1");
Intent it = new Intent(Intent.ACTION_VIEW, uri);
startActivity(it);   

uninstall apk

Uri uri = Uri.fromParts("package", strPackageName, null);
Intent it = new Intent(Intent.ACTION_DELETE, uri);
startActivity(it);  

install apk

Uri installUri = Uri.fromParts("package", "xxx", null);
returnIt = new Intent(Intent.ACTION_PACKAGE_ADDED, installUri);  

打开照相机

<1>Intent i = new Intent(Intent.ACTION_CAMERA_BUTTON, null);   this.sendBroadcast(i);
<2>long dateTaken = System.currentTimeMillis();   String name = createName(dateTaken) + ".jpg";   fileName = folder + name;   ContentValues values = new ContentValues();   values.put(Images.Media.TITLE, fileName);   values.put("_data", fileName);   values.put(Images.Media.PICASA_ID, fileName);   values.put(Images.Media.DISPLAY_NAME, fileName);   values.put(Images.Media.DESCRIPTION, fileName);   values.put(Images.ImageColumns.BUCKET_DISPLAY_NAME, fileName);   Uri photoUri = getContentResolver().insert(   MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);   Intent inttPhoto = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);   inttPhoto.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);   startActivityForResult(inttPhoto, 10);

从gallery选取图片

     Intent i = new Intent();   i.setType("image/*");   i.setAction(Intent.ACTION_GET_CONTENT);   startActivityForResult(i, 11);  

打开录音机

Intent mi = new Intent(Media.RECORD_SOUND_ACTION);
startActivity(mi);

显示应用详细列表

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

刚才找app id未果,结果发现用package name也可以 Uri uri = Uri.parse(“market://details?id=”);
这个简单多了

寻找应用

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

打开联系人列表

     Intent i = new Intent();   i.setAction(Intent.ACTION_GET_CONTENT);   i.setType("vnd.android.cursor.item/phone");   startActivityForResult(i, REQUEST_TEXT);Uri uri = Uri.parse("content://contacts/people");   Intent it = new Intent(Intent.ACTION_PICK, uri);   startActivityForResult(it, REQUEST_TEXT);

打开另一程序

Intent i = new Intent();
ComponentName cn = new ComponentName("com.yellowbook.android2",   "com.yellowbook.android2.AndroidSearch");
i.setComponent(cn);
i.setAction("android.intent.action.MAIN");
startActivityForResult(i, RESULT_OK);  

添加到短信收件箱

ContentValues cv = new ContentValues();
cv.put("type", "1");
cv.put("address","短信地址");
cv.put("body", "短信内容");
getContentResolver().insert(Uri.parse("content://sms/inbox"), cv);

从sim卡或者联系人中查询

Cursor cursor;
Uri uri;
if (type == 1) {
Intent intent = new Intent();
intent.setData(Uri.parse("content://icc/adn"));
uri = intent.getData();
} else
uri = People.CONTENT_URI;
cursor = activity.getContentResolver().query(uri, null, null, null, null);
while (cursor.moveToNext()) {
int peopleId = cursor.getColumnIndex(People._ID);
int nameId = cursor.getColumnIndex(People.NAME);
int phoneId = cursor.getColumnIndex(People.NUMBER);}
查看某个联系人,当然这里是ACTION_VIEW,如果为选择并返回action改为ACTION_PICK,当然处理intent时返回需要用到 startActivityforResult
Uri personUri = ContentUris.withAppendedId(People.CONTENT_URI, ID);//最后的ID参数为联系人Provider中的数据库BaseID,即哪一行
Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setData(personUri); startActivity(intent); 

删除

uri = ContentUris.withAppendedId(People.CONTENT_URI, 联系人id);
int count = activity.getContentResolver().delete(uri, null, null

添加到联系人:

ContentValues cv = new ContentValues();
ArrayList<ContentProviderOperation> operationList = new ArrayList<ContentProviderOperation>();
ContentProviderOperation.Builder builder = ContentProviderOperation.newInsert(RawContacts.CONTENT_URI);
builder.withValues(cv);
operationList.add(builder.build());
builder = ContentProviderOperation.newInsert(Data.CONTENT_URI);
builder.withValueBackReference(StructuredName.RAW_CONTACT_ID, 0);
builder.withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE);
builder.withValue(StructuredName.DISPLAY_NAME, "自定义联系人名");
operationList.add(builder.build());
builder = ContentProviderOperation.newInsert(Data.CONTENT_URI);
builder.withValueBackReference(Phone.RAW_CONTACT_ID, 0);
builder.withValue(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
builder.withValue(Phone.NUMBER, "联系人的phonenumber");
builder.withValue(Data.IS_PRIMARY, 1);
operationList.add(builder.build());
try {  getContentResolver().applyBatch(ContactsContract.AUTHORITY, operationList);  } catch (RemoteException e) {  e.printStackTrace();  } catch (OperationApplicationException e) {  e.printStackTrace();  }  

选择一个图片

Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("image/*");
startActivityForResult(intent, 0);   

调用Android设备的照相机,并设置拍照后存放位置

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(Environment .getExternalStorageDirectory().getAbsolutePath()+"/cwj", android123 + ".jpg"))); //存放位置为sdcard卡上cwj文件夹,文件名为android123.jpg格式
startActivityForResult(intent, 0);  

在market上搜索指定package name,

比如搜索com.android123.cwj的写法如下

Uri uri = Uri.parse("market://search?q=pname:com.android123.cwj");
Intent intent = new Intent(Intent.ACTION_VIEW, uri); startActivity(intent);

获取文件信息,并使用相对应软件打开

private void openFile(File f)
{    Intent intent = new Intent();    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);    intent.setAction(android.content.Intent.ACTION_VIEW);    String type = getMIMEType(f);    intent.setDataAndType(Uri.fromFile(f), type);    startActivity(intent);
}
private String getMIMEType(File f){    String end = f  .getName() .substring(f.getName().lastIndexOf(".") + 1,f.getName().length()).toLowerCase();    String type = "";    if (end.equals("mp3") || end.equals("aac") || end.equals("aac")|| end.equals("amr") || end.equals("mpeg")|| end.equals("mp4"))    {    type = "audio";    }else if (end.equals("jpg") || end.equals("gif")|| end.equals("png") || end.equals("jpeg"))    { type = "image";    }else    {    type = "*";    }    type += "/*";     return type;
} 

三方页面

三方应用在跳转前应该首先进行跳转之前的检查。检测该APP是否已经安装。如果安装再进行跳转,否则可能会出现异常而崩溃。

//检查某APP是否安装public static boolean isAvilible(Context context, String packageName){   //获取packagemanager   final PackageManager packageManager = context.getPackageManager();  //获取所有已安装程序的包信息   List<PackageInfo> packageInfos = packageManager.getInstalledPackages(0);  //用于存储所有已安装程序的包名   List<String> packageNames = new ArrayList<String>();  //从pinfo中将包名字逐一取出,压入pName list中   if(packageInfos != null){   for(int i = 0; i < packageInfos.size(); i++){   String packName = packageInfos.get(i).packageName;   packageNames.add(packName);   }   }   //判断packageNames中是否有目标程序的包名,有TRUE,没有FALSE   return packageNames.contains(packageName);  }  

跳转高德地图

Intent intent = Intent.getIntent("androidamap://viewMap?sourceApplication=地址&poiname=XX大厦&lat=39.045967&lon=118.93526&dev=0");
startActivity(intent);  

跳转添加QQ好友页面

String url = "mqqwpa://im/chat?chat_type=wpa&uin=2318723605";//uin是发送过去的qq号码
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));

安卓备忘:跳转系统页面以及常见APP相应页面相关推荐

  1. Android如何跳转到应用商店的APP详情页面

    前言 众所周知在Android应用开发过程中,可能会有需求,比如:推广时跳转到应用市场下载应用,跳转到应用市场给自己的应用打分,跳转到应用市场更新自己的应用. 让用户 下载 或 评论.列如app马甲包 ...

  2. [附源码]计算机毕业设计Python+uniapp基于安卓的掌上校园系统7m7o8(程序+lw+APP+远程部署)

    [附源码]计算机毕业设计Python+uniapp基于安卓的掌上校园系统7m7o8(程序+lw+APP+远程部署) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行环境配置: ...

  3. 【备忘】JavaEE系统架构师学习路线图

    转载自:http://www.javaxxz.com/thread-286706-1-1.html 第1阶段(Java程序员) - Java语言基础     - 101 JavaSE:[101]JAV ...

  4. Android跳转到应用商店的APP详情页面

    需求:从App内部点击按钮或链接,跳转到应用商店的某个APP的详情页面. 让用户 下载 或 评论. 实现: /*** 启动到应用商店app详情界面** @param appPkg 目标App的包名* ...

  5. Android跳转到应用商店的APP详情页面,以及 Google GMS 各个apk的包

    需求: 从App内部点击按钮或链接,跳转到应用商店的某个APP的详情页面. 让用户 下载 或 评论. 实现: /*** 启动到应用商店app详情界面** @param appPkg 目标App的包名* ...

  6. Android跳转到应用商店的APP详情页面工具类(检测Google Play跳转网页详情)

    完整代码: /*** 跳转到本机应用市场*/ object MarketTools {const val HUAWEI_BRAND = "HUAWEI";//HUAWEI_PACK ...

  7. H5页面唤醒支付宝 APP指定页面

    mes = "alipayqr://platformapi/startapp?saId=10000003";手机充值 mes = "alipayqr://platform ...

  8. Win10:系统重装、优化、必备软件——备忘笔记

    Win10:系统重装.优化.必备软件--备忘笔记 重装系统 无U盘--电脑能正常开机 U盘PE--电脑无法开机 Win10优化 必装软件 重装系统 推荐镜像下载地址:MSDN:www.xitongku ...

  9. [Flutter]微信分享并从分享链接跳回APP指定页面

    最近在使用flutter开发APP,flutter实现了一套代码同时生成Android和iOS两个平台的APP,可以实现零基础快速上手APP开发,缩短开发周期.但flutter仍处于较快增长期,版本迭 ...

最新文章

  1. eclipse:快捷键(补充。。。)
  2. 16_非监督学习、k-means 4阶段、kmeans API、Kmeans性能评估指标、案例
  3. 西安交大计算机考研分数线2020院线,西安交通大学2020考研复试分数线已公布
  4. android shpe 三角形_绘制三角形背景的android
  5. 拜董明珠“闺蜜”刘姝威所赐 广东证监局向美的方洪波出具警示函
  6. windows下的workon env
  7. Linux安装redis和部署
  8. 如何修改MySQL数据库中表和表中字段的编码方式
  9. 计算机应用教程 卢湘鸿答案,计算机应用教程(Windows 2000环境)习题解答与实验指导...
  10. 基于RGB-D图像的语义场景补全研究进展综述
  11. 人工智能之语音识别概述(一)
  12. 使用MV制作最简单的游戏:我要做游戏(1)
  13. Win11绿色护眼模式怎么开启
  14. 蒟蒻の背包dp学习总结
  15. android系统裁剪优化
  16. linux内核audit,linux audit审计(7)--读懂audit日志
  17. destoon平台供应或者商城详情页直接链接到会员的商铺上
  18. python roundup 和 rounddown
  19. 大数数字读法 unsigned long long
  20. 关于snipaste的网页长截屏(只能复制字或代码)

热门文章

  1. Win10笔记本外接显示器调整分辨率教程
  2. 计算机中的域到底是什么意思?有什么用出?我们为什么要加入域?域和工作组有什么分别呢?
  3. 最新医疗系统三测单控件(体温单控件)
  4. Android Studio 如何 安装 HAXM
  5. C#treeview树形菜单
  6. 字符串匹配——BM算法
  7. SQL 语法(超级详细)
  8. 谈谈你对Activity生命周期的理解
  9. 连续可调稳压升压电源模块12v转12kv 24v转15kv 12v转5000v
  10. 实验二 倒计时页面的实现 淘宝秒杀页面