Android Studio 实例:Intent 隐式启动与操作(短信、拨号、电话、网页)
189 浏览量
更新于2024-09-03
3
收藏 241KB PDF 举报
"这篇资源是关于在Android Studio中使用Intent进行隐式启动操作以及实现发送短信、拨打电话、打开网页等功能的实例代码分享。适用于学习Android应用开发的开发者,特别是对Intent机制还不熟悉的初学者。"
在Android应用开发中,Intent是一种强大的工具,用于在组件之间传递消息和启动动作。本资源主要讲解了如何使用Intent隐式启动其他应用程序的组件,如发送短信、拨打电话和打开网页等。以下是对这些功能的详细说明:
1. 隐式启动:
隐式启动是通过Intent指定一个Action(操作)和Category(类别),而不是直接指定目标组件的Class。Android系统会查找与Intent匹配的组件来执行操作。例如,你可以创建一个Intent,设置ACTION_VIEW,用于查看某种类型的数据,然后Android系统会找到能够处理这种数据的合适应用。
2. 发送短信:
要使用Intent发送短信,需要设置ACTION_SENDTO行动,并指定scheme为"smsto",同时附上接收方的电话号码。在AndroidManifest.xml中,你需要添加发送短信所需的权限`<uses-permission android:name="android.permission.SEND_SMS" />`。在按钮点击事件中,构建并启动这个Intent。
3. 拨号:
拨打电话可以通过ACTION_DIAL Intent实现,它会打开电话应用的拨号界面,但不会自动拨打。如果需要直接拨打,可以使用ACTION_CALL,但需确保拥有`<uses-permission android:name="android.permission.CALL_PHONE" />`权限。
4. 打电话:
ACTION_CALL Intent可以直接拨打指定的电话号码,但可能因权限问题在Android 6.0及以上版本需要在运行时请求权限。
5. 打开网页:
使用ACTION_VIEW Intent并指定数据类型为“text/html”或“vnd.android.cursor.item/vnd.android.package-archive”,可以打开浏览器浏览特定的网页。你需要设置Intent的数据属性为URL字符串。
以下是一个简单的示例代码片段,展示了如何在按钮点击事件中启动这些Intent:
```xml
<Button
android:id="@+id/button_send_sms"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="发送短信" />
<Button
android:id="@+id/button_dial_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="拨号" />
<Button
android:id="@+id/button_call_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="打电话" />
<Button
android:id="@+id/button_open_webpage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="打开网页" />
```
在对应的Activity中,你需要为每个按钮添加点击事件监听器,如下所示:
```java
Button buttonSendSms = findViewById(R.id.button_send_sms);
buttonSendSms.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_SENDTO);
intent.setData(Uri.parse("smsto:1234567890"));
startActivity(intent);
}
});
Button buttonDialNumber = findViewById(R.id.button_dial_number);
buttonDialNumber.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:1234567890"));
startActivity(intent);
}
});
Button buttonCallNumber = findViewById(R.id.button_call_number);
buttonCallNumber.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.CALL_PHONE}, 1);
} else {
Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:1234567890"));
startActivity(intent);
}
}
});
Button buttonOpenWebpage = findViewById(R.id.button_open_webpage);
buttonOpenWebpage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("http://www.example.com"));
startActivity(intent);
}
});
```
在实际应用中,你需要根据应用的需求来调整这些Intent,比如添加额外的参数、处理权限请求等。这份资源提供了基础的实现方式,对于开发者来说是一个很好的起点,可以帮助理解Intent的工作原理及其在不同场景中的应用。
4098 浏览量
672 浏览量
476 浏览量
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情

weixin_38692631
- 粉丝: 0
最新资源
- 基于C语言的链表图书管理系统设计与文件操作
- 开源Quintum Tenor VoIP CDR服务器解决方案
- EnameTool:一站式域名查询解决方案
- 文件夹加密软件GLSCC-WLL:保护隐私文件不被查看
- 伟诠电子WT51F104微处理器的验证程序分析
- 红酒主题创意PPT模板设计:多彩三角形元素
- ViewWizard:程序窗口查看与进程监控工具
- 芯片无忧:U盘设备检测及信息查询工具
- XFTP5下载指南:便捷的文件传输解决方案
- OpenGatekeeper:探索开源H.323 Gatekeeper技术
- 探索龙卷风网络收音机的强大功能与使用技巧
- NOIP2011 标准程序精简代码解析
- 公司新春联谊会PPT模板设计与活动流程
- Android开发Eclipse ADT插件详解及安装指南
- 仅首次显示的引导界面实现技术
- 彼得·赫雷肖夫重编的《矩阵的几何方法》正式发布