android隐式intent及启动方式

原文:http://newfaction.net/2011/04/29/call-the-internal-functions-of-android-platform.html

http://www.eoeandroid.com/thread-75418-1-1.html


下面的列表简单的列出了Intent类中以静态字符串常量保存的本地动作。你可以在你自己的应用程序里当创建隐式Intent来启动Activity和子Activity时使用这些动作。


❑ ACTION_ANSWER

打开一个Activity来处理来电。目前,它是被本地的电话拨号工具处理。


❑ ACTION_CALL

启动电话拨号工具,并立即用数据URI中的号码初始化一个呼叫。一般来说,如果可能的话,它认为是比使用Dial_Action好的一种方式。


❑ ACTION_DELETE

启动一个Activity来让你删除储存在URI位置的数据入口。


❑ ACTION_DIAL

启动一个电话拨号程序,使用预置在数据URI中的号码来拨号。默认情况下,它是由Android本地的电话拨号工具处理。这个拨号工具能规范多数的号码;举个例子,tel:555-1234和tel:(212)555 1212都是有效的号码。


❑ ACTION_EDIT

请求一个Activity来编辑URI处的数据。


❑ ACTION_INSERT

打开一个能在数据域的特定游标处插入新项目的Activity。当以子Activity方式调用时,它必须返回新插入项目的URI。


❑ ACTION_PICK

启动一个子Activity来让你从URI数据处挑选一个项目。当关闭时,它必须返回指向被挑选项目的URI。启动的Activity取决于要挑选的数据;例如,传入content://contacts/people会引发本地的联系人列表。


❑ ACTION_SEARCH

启动一个UI来执行搜索。在Intent的数据包里使用SearchManager.QUERY键值来提供搜索内容的字符串。


❑ ACTION_SENDTO

启动一个Activity来给URI中的指定联系人发送一个消息。


❑ ACTION_SEND

启动一个Activity来发送特定的数据(接收者经由解析Activity来选择)。使用setType来设置Intent的类型为传输数据的mime类型。

数据本身依赖于类型使用EXTRA_TEXT或EXTRA_STREAM来储存。在e-mail的情况下,Android本地应用程序还可以接受使用EXTRA_EMAIL, EXTRA_CC, EXTRA_BCC, 和EXTRA_SUBJECT键值的extras。


❑ ACTION_VIEW

最通用的动作。View动作要求Intent URI中的数据以最合理的方式显示。不同的应用程序将处理View请求,依赖于URI中的数据。一般的,http:地址会在浏览器中打开,tel:地址会在拨号工具中打开并呼叫号码,geo:地址会在Google地图应用程序中显示,联系人内容会在联系人管理器中显示。


❑ ACTION_WEB_SEARCH

打开一个Activity,执行基于数据URI中文本的网页搜索。

显示网页

   1. Uri uri = Uri.parse("http://google.com");          
   2. Intent it = new Intent(Intent.ACTION_VIEW, uri);          
   3. startActivity(it);        
   4. Uri uri = Uri.parse("http://google.com");      
   5. Intent it = new Intent(Intent.ACTION_VIEW, uri);      
   6. startActivity(it);

显示地图

 
   1. Uri uri = Uri.parse("geo:38.899533,-77.036476");          
   2. Intent it = new Intent(Intent.ACTION_VIEW, uri);           
   3. startActivity(it);           
   4. //其他 geo URI 範例          
   5. //geo:latitude,longitude          
   6. //geo:latitude,longitude?z=zoom          
   7. //geo:0,0?q=my+street+address          
   8. //geo:0,0?q=business+near+city          
   9. //google.streetview:cbll=lat,lng&cbp=1,yaw,,pitch,zoom&mz=mapZoom        
  10. Uri uri = Uri.parse("geo:38.899533,-77.036476");      
  11. Intent it = new Intent(Intent.ACTION_VIEW, uri);       
  12. startActivity(it);      
  13. //其他 geo URI 範例      
  14. //geo:latitude,longitude      
  15. //geo:latitude,longitude?z=zoom      
  16. //geo:0,0?q=my+street+address      
  17. //geo:0,0?q=business+near+city      
  18. //google.streetview:cbll=lat,lng&cbp=1,yaw,,pitch,zoom&mz=mapZoom

拨打电话

 
   1. //叫出撥號程式          
   2. Uri uri = Uri.parse("tel:0800000123");          
   3. Intent it = new Intent(Intent.ACTION_DIAL, uri);          
   4. startActivity(it);         
   5. //直接打電話出去          
   6. Uri uri = Uri.parse("tel:0800000123");          
   7. Intent it = new Intent(Intent.ACTION_CALL, uri);          
   8. startActivity(it);          
   9. //用這個,要在 AndroidManifest.xml 中,加上          
  10. //<uses-permission id="android.permission.CALL_PHONE" />        
  11. //叫出撥號程式      
  12. Uri uri = Uri.parse("tel:0800000123");      
  13. Intent it = new Intent(Intent.ACTION_DIAL, uri);      
  14. startActivity(it);     
  15. //直接打電話出去      
  16. Uri uri = Uri.parse("tel:0800000123");      
  17. Intent it = new Intent(Intent.ACTION_CALL, uri);      
  18. startActivity(it);      
  19. //用這個,要在 AndroidManifest.xml 中,加上      
  20. //<uses-permission id="android.permission.CALL_PHONE" />

发送SMS/MMS

   1. //需写号码SMS   
   2. Intent it = new Intent(Intent.ACTION_VIEW);   
   3. it.putExtra("sms_body", "The SMS text");   
   4. it.setType("vnd.android-dir/mms-sms");   
   5. startActivity(it);   
   6. //发送SMS   
   7. Uri uri = Uri.parse("smsto:0800000123");   
   8. Intent it = new Intent(Intent.ACTION_SENDTO, uri);   
   9. it.putExtra("sms_body", "The SMS text");   
  10. startActivity(it);   
  11. //发送MMS   
  12. Uri uri = Uri.parse("content://media/external/images/media/23");   
  13. Intent it = new Intent(Intent.ACTION_SEND);   
  14. it.putExtra("sms_body", "some text");   
  15. it.putExtra(Intent.EXTRA_STREAM, uri);   
  16. it.setType("image/png");   
  17. startActivity(it);   
  18. //需写号码SMS   
  19. Intent it = new Intent(Intent.ACTION_VIEW);   
  20. it.putExtra("sms_body", "The SMS text");   
  21. it.setType("vnd.android-dir/mms-sms");   
  22. startActivity(it);   
  23. //发送SMS   
  24. Uri uri = Uri.parse("smsto:0800000123");   
  25. Intent it = new Intent(Intent.ACTION_SENDTO, uri);   
  26. it.putExtra("sms_body", "The SMS text");   
  27. startActivity(it);   
  28. //发送MMS   
  29. Uri uri = Uri.parse("content://media/external/images/media/23");   
  30. Intent it = new Intent(Intent.ACTION_SEND);   
  31. it.putExtra("sms_body", "some text");   
  32. it.putExtra(Intent.EXTRA_STREAM, uri);   
  33. it.setType("image/png");   
  34. startActivity(it);

发送EMAIL

   1. Uri uri = Uri.parse("mailto:xxx@abc.com");          
   2. Intent it = new Intent(Intent.ACTION_SENDTO, uri);          
   3. startActivity(it);         
   4. Intent it = new Intent(Intent.ACTION_SEND);          
   5. it.putExtra(Intent.EXTRA_EMAIL, "me@abc.com");          
   6. it.putExtra(Intent.EXTRA_TEXT, "The email body text");          
   7. it.setType("text/plain");          
   8. startActivity(Intent.createChooser(it, "Choose Email Client"));         
   9. Intent it=new Intent(Intent.ACTION_SEND);            
  10. String[] tos={"me@abc.com"};            
  11. String[] ccs={"you@abc.com"};            
  12. it.putExtra(Intent.EXTRA_EMAIL, tos);            
  13. it.putExtra(Intent.EXTRA_CC, ccs);            
  14. it.putExtra(Intent.EXTRA_TEXT, "The email body text");            
  15. it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");            
  16. it.setType("message/rfc822");            
  17. startActivity(Intent.createChooser(it, "Choose Email Client"));          
  18. //传送附件          
  19. Intent it = new Intent(Intent.ACTION_SEND);          
  20. it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");          
  21. it.putExtra(Intent.EXTRA_STREAM, "[url=file:///sdcard/mysong.mp3]file:///sdcard/mysong.mp3[/url]");          
  22. sendIntent.setType("audio/mp3");          
  23. startActivity(Intent.createChooser(it, "Choose Email Client"));       
  24. Uri uri = Uri.parse("mailto:xxx@abc.com");      
  25. Intent it = new Intent(Intent.ACTION_SENDTO, uri);      
  26. startActivity(it);     
  27. Intent it = new Intent(Intent.ACTION_SEND);      
  28. it.putExtra(Intent.EXTRA_EMAIL, "me@abc.com");      
  29. it.putExtra(Intent.EXTRA_TEXT, "The email body text");      
  30. it.setType("text/plain");      
  31. startActivity(Intent.createChooser(it, "Choose Email Client"));     
  32. Intent it=new Intent(Intent.ACTION_SEND);        
  33. String[] tos={"me@abc.com"};        
  34. String[] ccs={"you@abc.com"};        
  35. it.putExtra(Intent.EXTRA_EMAIL, tos);        
  36. it.putExtra(Intent.EXTRA_CC, ccs);        
  37. it.putExtra(Intent.EXTRA_TEXT, "The email body text");        
  38. it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");        
  39. it.setType("message/rfc822");        
  40. startActivity(Intent.createChooser(it, "Choose Email Client"));      
  41. //传送附件      
  42. Intent it = new Intent(Intent.ACTION_SEND);      
  43. it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");      
  44. it.putExtra(Intent.EXTRA_STREAM, "[url=file:///sdcard/mysong.mp3]file:///sdcard/mysong.mp3[/url]");      
  45. sendIntent.setType("audio/mp3");      
  46. startActivity(Intent.createChooser(it, "Choose Email Client"));

播放多媒体

   1. Intent it = new Intent(Intent.ACTION_VIEW);          
   2. Uri uri = Uri.parse("[url=file:///sdcard/song.mp3]file:///sdcard/song.mp3[/url]");          
   3. it.setDataAndType(uri, "audio/mp3");          
   4. startActivity(it);         
   5. Uri uri = Uri.withAppendedPath(MediaStore.Audio.Media.INTERNAL_CONTENT_URI, "1");          
   6. Intent it = new Intent(Intent.ACTION_VIEW, uri);          
   7. startActivity(it);        
   8. Intent it = new Intent(Intent.ACTION_VIEW);      
   9. Uri uri = Uri.parse("[url=file:///sdcard/song.mp3]file:///sdcard/song.mp3[/url]");      
  10. it.setDataAndType(uri, "audio/mp3");      
  11. startActivity(it);     
  12. Uri uri = Uri.withAppendedPath(MediaStore.Audio.Media.INTERNAL_CONTENT_URI, "1");      
  13. Intent it = new Intent(Intent.ACTION_VIEW, uri);      
  14. startActivity(it);

Android Market

   1. //寻找应用         
   2. Uri uri = Uri.parse("market://search?q=pname:pkg_name");          
   3. Intent it = new Intent(Intent.ACTION_VIEW, uri);          
   4. startActivity(it);          
   5. //where pkg_name is the full package path for an application         
   6. //显示应用详细列表        
   7. Uri uri = Uri.parse("market://details?id=app_id");          
   8. Intent it = new Intent(Intent.ACTION_VIEW, uri);          
   9. startActivity(it);          
  10. //where app_id is the application ID, find the ID           
  11. //by clicking on your application on Market home           
  12. //page, and notice the ID from the address bar       
  13. //寻找应用     
  14. Uri uri = Uri.parse("market://search?q=pname:pkg_name");      
  15. Intent it = new Intent(Intent.ACTION_VIEW, uri);      
  16. startActivity(it);      
  17. //where pkg_name is the full package path for an application     
  18. //显示应用详细列表    
  19. Uri uri = Uri.parse("market://details?id=app_id");      
  20. Intent it = new Intent(Intent.ACTION_VIEW, uri);      
  21. startActivity(it);      
  22. //where app_id is the application ID, find the ID       
  23. //by clicking on your application on Market home       
  24. //page, and notice the ID from the address bar

卸载应用

   1. Uri uri = Uri.fromParts("package", strPackageName, null);           
   2. Intent it = new Intent(Intent.ACTION_DELETE, uri);           
   3. startActivity(it);         
   4. Uri uri = Uri.fromParts("package", strPackageName, null);       
   5. Intent it = new Intent(Intent.ACTION_DELETE, uri);       
   6. startActivity(it);

安装应用

   1. Uri uri = Uri.parse("url_of_apk_file");          
   2. Intent it = new Intent(Intent.ACTION_VIEW, uri);          
   3. it.setData(uri);          
   4. it.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);          
   5. it.setClassName("com.android.packageinstaller",          
   6.                 "com.android.packageinstaller.PackageInstallerActivity");          
   7. startActivity(it);           
   8. //make sure the url_of_apk_file is readable for all users

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值