部分Intent用法-kbz

1. 跳转至系统拨号盘界面

[java]  view plain  copy
  1. Intent intent = new Intent(Intent.ACTION_DIAL);  
  2. Uri uri = Uri.parse("tel:"+"手机号");  
  3. intent.setData(uri);  
  4. startActivity(intent);  


2. 直接调用拨打电话

[java]  view plain  copy
  1. Intent intent = new Intent(Intent.ACTION_CALL);  
  2. Uri uri = Uri.parse("tel:"+"手机号");  
  3. intent.setData(uri);  
  4. startActivity(intent);  


★ 发送短信

1. 跳转至系统发送短信界面

[java]  view plain  copy
  1. Intent intent = new Intent(Intent.ACTION_SENDTO);  
  2. Uri uri = Uri.parse("smsto://"+"手机号");  
  3. intent.setData(uri);  
  4. intent.putExtra("sms_body""短信内容");  
  5. startActivity(intent);  

2. 调用系统短信接口直接发送短信

[java]  view plain  copy
  1. /** 
  2.  * 直接调用短信接口发短信 
  3.  * @param phoneNumber 
  4.  * @param message 
  5.  */  
  6. public void sendSMS(String phoneNumber,String message){  
  7.     //获取短信管理器   
  8.     android.telephony.SmsManager smsManager = android.telephony.SmsManager.getDefault();  
  9.     //拆分短信内容(手机短信长度限制)    
  10.     List<String> divideContents = smsManager.divideMessage(message);   
  11.     for (String text : divideContents) {    
  12.         smsManager.sendTextMessage(phoneNumber, null, text, nullnull);    
  13.     }  
  14. }  

★ 打开手机浏览器

调用手机浏览器,大部分人会使用如下代码:

[java]  view plain  copy
  1. Intent intent = new Intent();  
  2. intent.setAction(Intent.ACTION_VIEW);  
  3. Uri content_url = Uri.parse(url);  
  4. intent.setData(content_url);  
  5. startActivity(intent);  

但是这样做并不严谨,如果手机上没有安装浏览器APP的话,系统就会因为找不到这个Action对应的Activity而发生崩溃问题!

使用Intent对象的resolveActivity(PackageManager pm)方法可以检测手机端是否有对应Activity来启动该Intent,如下:

[java]  view plain  copy
  1. public void openWebPage(String url) {  
  2.     Uri webpage = Uri.parse(url);  
  3.     Intent intent = new Intent(Intent.ACTION_VIEW, webpage);  
  4.     if (intent.resolveActivity(getPackageManager()) != null) {  
  5.         startActivity(intent);  
  6.     }  
  7. }  

如果以上代码,将会打开手机端默认的浏览器,如果想让用户自己选择使用哪一个浏览器的话,可以使用Intent的createChooser(Intent target, CharSequence title)方法:

[java]  view plain  copy
  1. Intent intent = new Intent();  
  2. intent.setAction(Intent.ACTION_VIEW);  
  3. Uri content_url = Uri.parse("http://www.jianshu.com/p/eaae783b931f");  
  4. intent.setData(content_url);  
  5. if (intent.resolveActivity(getPackageManager())!=null) {  
  6.     startActivity(Intent.createChooser(intent, "请选择浏览器"));  
  7. }  



通过浏览器打开网页     

[html]  view plain  copy
  1. // 打开Google主页  
  2. Uri uri = Uri.parse("http://www.google.com");  
  3. Intent intent  = new Intent(Intent.ACTION_VIEW, uri);  
  4. startActivity(intent);  

发送电子邮件     
[html]  view plain  copy
  1. // 给someone@domain.com发邮件  
  2. Uri uri = Uri.parse("mailto:someone@domain.com");  
  3. Intent intent = new Intent(Intent.ACTION_SENDTO, uri);  
  4. startActivity(intent);  
  5. // 给someone@domain.com发邮件发送内容为“Hello”的邮件  
  6. Intent intent = new Intent(Intent.ACTION_SEND);  
  7. intent.putExtra(Intent.EXTRA_EMAIL, "someone@domain.com");  
  8. intent.putExtra(Intent.EXTRA_SUBJECT, "Subject");  
  9. intent.putExtra(Intent.EXTRA_TEXT, "Hello");  
  10. intent.setType("text/plain");  
  11. startActivity(intent);  
  12. // 给多人发邮件  
  13. Intent intent=new Intent(Intent.ACTION_SEND);  
  14. String[] tos = {"1@abc.com", "2@abc.com"}; // 收件人  
  15. String[] ccs = {"3@abc.com", "4@abc.com"}; // 抄送  
  16. String[] bccs = {"5@abc.com", "6@abc.com"}; // 密送  
  17. intent.putExtra(Intent.EXTRA_EMAIL, tos);  
  18. intent.putExtra(Intent.EXTRA_CC, ccs);  
  19. intent.putExtra(Intent.EXTRA_BCC, bccs);  
  20. intent.putExtra(Intent.EXTRA_SUBJECT, "Subject");  
  21. intent.putExtra(Intent.EXTRA_TEXT, "Hello");  
  22. intent.setType("message/rfc822");  
  23. startActivity(intent);  

显示地图与路径规划     
[html]  view plain  copy
  1. // 打开Google地图中国北京位置(北纬39.9,东经116.3)  
  2. Uri uri = Uri.parse("geo:39.9,116.3");  
  3. Intent intent = new Intent(Intent.ACTION_VIEW, uri);  
  4. startActivity(intent);  
  5. // 路径规划:从北京某地(北纬39.9,东经116.3)到上海某地(北纬31.2,东经121.4)  
  6. Uri uri = Uri.parse("http://maps.google.com/maps?f=d&saddr=39.9 116.3&daddr=31.2 121.4");  
  7. Intent intent = new Intent(Intent.ACTION_VIEW, uri);  
  8. startActivity(intent);  

播放多媒体     
[html]  view plain  copy
  1. Intent intent = new Intent(Intent.ACTION_VIEW);  
  2. Uri uri = Uri.parse("file:///sdcard/foo.mp3");  
  3. intent.setDataAndType(uri, "audio/mp3");  
  4. startActivity(intent);  
  5.    
  6. Uri uri = Uri.withAppendedPath(MediaStore.Audio.Media.INTERNAL_CONTENT_URI, "1");  
  7. Intent intent = new Intent(Intent.ACTION_VIEW, uri);  
  8. startActivity(intent);  

拍照     
[html]  view plain  copy
  1. // 打开拍照程序  
  2. Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);   
  3. startActivityForResult(intent, 0);  
  4. // 取出照片数据  
  5. Bundle extras = intent.getExtras();   
  6. Bitmap bitmap = (Bitmap) extras.get("data");  

获取并剪切图片     
[html]  view plain  copy
  1. // 获取并剪切图片  
  2. Intent intent = new Intent(Intent.ACTION_GET_CONTENT);  
  3. intent.setType("image/*");  
  4. intent.putExtra("crop", "true"); // 开启剪切  
  5. intent.putExtra("aspectX", 1); // 剪切的宽高比为1:2  
  6. intent.putExtra("aspectY", 2);  
  7. intent.putExtra("outputX", 20); // 保存图片的宽和高  
  8. intent.putExtra("outputY", 40);   
  9. intent.putExtra("output", Uri.fromFile(new File("/mnt/sdcard/temp"))); // 保存路径  
  10. intent.putExtra("outputFormat", "JPEG");// 返回格式  
  11. startActivityForResult(intent, 0);  
  12. // 剪切特定图片  
  13. Intent intent = new Intent("com.android.camera.action.CROP");   
  14. intent.setClassName("com.android.camera", "com.android.camera.CropImage");   
  15. intent.setData(Uri.fromFile(new File("/mnt/sdcard/temp")));   
  16. intent.putExtra("outputX", 1); // 剪切的宽高比为1:2  
  17. intent.putExtra("outputY", 2);  
  18. intent.putExtra("aspectX", 20); // 保存图片的宽和高  
  19. intent.putExtra("aspectY", 40);  
  20. intent.putExtra("scale", true);  
  21. intent.putExtra("noFaceDetection", true);   
  22. intent.putExtra("output", Uri.parse("file:///mnt/sdcard/temp"));   
  23. startActivityForResult(intent, 0);  

打开Google Market     
[html]  view plain  copy
  1. // 打开Google Market直接进入该程序的详细页面  
  2. Uri uri = Uri.parse("market://details?id=" + "com.demo.app");  
  3. Intent intent = new Intent(Intent.ACTION_VIEW, uri);  
  4. startActivity(intent);  

安装和卸载程序     
[html]  view plain  copy
  1. Uri uri = Uri.fromParts("package", "com.demo.app", null);    
  2. Intent intent = new Intent(Intent.ACTION_DELETE, uri);    
  3. startActivity(intent);  

进入设置界面     
[html]  view plain  copy
  1. // 进入无线网络设置界面(其它可以举一反三)    
  2. Intent intent = new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS);    
  3. startActivityForResult(intent, 0);  

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值