Android Studio 实例:Intent 隐式启动与操作(短信、拨号、电话、网页)
44 浏览量
更新于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的工作原理及其在不同场景中的应用。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2021-01-04 上传
2021-01-20 上传
点击了解资源详情
2023-04-04 上传
2023-04-20 上传
2023-10-26 上传
weixin_38692631
- 粉丝: 0
- 资源: 880
最新资源
- Python-2.5.tgz
- lengguanyuantiaoguang.zip_单片机开发_C/C++_
- the_corn_horn
- 易语言农历工具-易语言
- SoftwareEngine:Windows Store应用程序中的软件3D渲染引擎
- docker-laravel-s3-example
- PPT欧美风格57.zip
- 基于UCOS和STM32的ADC采样_stm32ucosII_
- python-3.12.1-embed-arm64.zip
- 易语言图片不规则变形源码-易语言
- 31.rar_matlab例程_PDF_
- PPT静态精选99.zip
- FrontEnd_Assignment:我已经使用ReactJS创建了简单的画布应用程序
- matlab分时代码-neuroconda:在Python,R等中进行神经成像分析的Conda环境
- 第1章 无线信道:传播和衰落_无线信道_
- 易语言取文本串声母源码-易语言