您的位置:首页 > 移动开发 > Android开发

android隐式intent及启动方式

2011-08-31 09:48 369 查看
原文: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, "file:///sdcard/mysong.mp3");
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, "file:///sdcard/mysong.mp3");
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("file:///sdcard/song.mp3");
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("file:///sdcard/song.mp3");
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: