当在Android中使用Intent来调用系统内置的协议时,可以使用不同的Intent动作和数据来执行各种操作。以下是20种常见的系统内置协议,每种都附带了示例代码:
- 发送短信 (sms):
Uri smsUri = Uri.parse("sms:1234567890");
Intent smsIntent = new Intent(Intent.ACTION_SENDTO, smsUri);
smsIntent.putExtra("sms_body", "Hello, this is a test message.");
startActivity(smsIntent);
- 发送短信给指定号码 (smsto):
Uri smstoUri = Uri.parse("smsto:1234567890");
Intent smstoIntent = new Intent(Intent.ACTION_SENDTO, smstoUri);
smstoIntent.putExtra("sms_body", "Hello, this is a test message.");
startActivity(smstoIntent);
- 拨打电话 (tel):
Uri telUri = Uri.parse("tel:1234567890");
Intent telIntent = new Intent(Intent.ACTION_DIAL, telUri);
startActivity(telIntent);
- 打开语音邮箱 (voicemail):
javaCopy codeIntent voicemailIntent = new Intent(Intent.ACTION_CALL_BUTTON);
startActivity(voicemailIntent);
- 发送电子邮件 (mailto):
javaCopy codeIntent mailtoIntent = new Intent(Intent.ACTION_SENDTO);
mailtoIntent.setData(Uri.parse("mailto:example@example.com"));
mailtoIntent.putExtra(Intent.EXTRA_SUBJECT, "Subject");
mailtoIntent.putExtra(Intent.EXTRA_TEXT, "Body of the email");
startActivity(mailtoIntent);
- 查看地图 (gecko):
javaCopy codeUri geckoUri = Uri.parse("geo:0,0?q=New+York");
Intent geckoIntent = new Intent(Intent.ACTION_VIEW, geckoUri);
startActivity(geckoIntent);
- 打开应用市场 (market):
javaCopy codeUri marketUri = Uri.parse("market://details?id=com.example.app");
Intent marketIntent = new Intent(Intent.ACTION_VIEW, marketUri);
startActivity(marketIntent);
- 打开网页 (http/https):
javaCopy codeUri webUri = Uri.parse("https://www.example.com");
Intent webIntent = new Intent(Intent.ACTION_VIEW, webUri);
startActivity(webIntent);
- 打开文件 (file):
javaCopy codeUri fileUri = Uri.fromFile(new File("/sdcard/example.txt"));
Intent fileIntent = new Intent(Intent.ACTION_VIEW);
fileIntent.setDataAndType(fileUri, "text/plain");
startActivity(fileIntent);
- 打开特定类型的内容 (content):
Uri contentUri = Uri.parse("content://media/external/images/media/123");
Intent contentIntent = new Intent(Intent.ACTION_VIEW, contentUri);
startActivity(contentIntent);
- 启动特定的Intent (intent):
Intent customIntent = new Intent("com.example.CUSTOM_ACTION");
startActivity(customIntent);
- 打开浏览器中的特定页面 (about):
Uri aboutUri = Uri.parse("about:blank");
Intent aboutIntent = new Intent(Intent.ACTION_VIEW, aboutUri);
startActivity(aboutIntent);
- 拨打电话给指定号码 (callto):
Uri calltoUri = Uri.parse("callto:1234567890");
Intent calltoIntent = new Intent(Intent.ACTION_DIAL, calltoUri);
startActivity(calltoIntent);
- 发送彩信 (mms):
Intent mmsIntent = new Intent(Intent.ACTION_SEND);
mmsIntent.setType("vnd.android-dir/mms-sms");
startActivity(mmsIntent);
- 播放流媒体 (rtsp):
Uri rtspUri = Uri.parse("rtsp://example.com/stream");
Intent rtspIntent = new Intent(Intent.ACTION_VIEW, rtspUri);
startActivity(rtspIntent);
- 打开聊天界面 (cctalk):
Uri cctalkUri = Uri.parse("cctalk://open");
Intent cctalkIntent = new Intent(Intent.ACTION_VIEW, cctalkUri);
startActivity(cctalkIntent);
- 接听电话 (pickup):
Intent pickupIntent = new Intent(Intent.ACTION_ANSWER);
startActivity(pickupIntent);
- 打开备份设置界面 (backup):
Intent backupIntent = new Intent("android.settings.BACKUP_SETTINGS");
startActivity(backupIntent);
- 打开其他应用 (app):
Intent appIntent = getPackageManager().getLaunchIntentForPackage("com.example.otherapp");
if (appIntent != null) {
startActivity(appIntent);
}
- 打开系统设置 (settings):
Intent settingsIntent = new Intent(Settings.ACTION_SETTINGS);
startActivity(settingsIntent);
这些示例代码演示了如何使用Intent来执行不同的系统内置协议操作。请根据你的需求和具体情况修改这些示例代码。不要忘记在应用中适当处理异常和权限请求。