这里主要是实现了手机通信,其主要实现了打电话功能和发送短信功能。
拨号界面如下(由于模拟器屏幕兼容问题,不能正常显示界面,手机上可正常显示):
点击时每个数字时,imagebutton会更换图片,如下:
想要实现这一功能,主要是对imagebutton的监听,代码如下:
imageButton1.setOnTouchListener(new View.OnTouchListener(){ public boolean onTouch(View v, MotionEvent event) { //点击 if(event.getAction() == MotionEvent.ACTION_DOWN){ //重新设置按下时的背景图片 ((ImageButton)v).setImageDrawable(getResources().getDrawable(R.drawable.d1)); }else if(event.getAction() == MotionEvent.ACTION_UP){ //松开 //再修改为抬起时的正常图片 ((ImageButton)v).setImageDrawable(getResources().getDrawable(R.drawable.d1)); } return false; } });
实现拨号功能的代码如下,需要调用ACTION_CALL:
public void dial(View view) { EditText text=(EditText)findViewById(R.id.editText1); String number=text.getText().toString(); Intent intent = new Intent(); intent.setAction(intent.ACTION_CALL); intent.setData(Uri.parse("tel:"+number)); startActivity(intent);//方法内部会自动为Intent添加类别: android.intent.category.DEFAULT }
拨号功能的xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/LinearLayout2" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#80bbe7" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <EditText android:id="@+id/editText1" android:layout_width="match_parent" android:layout_height="82dp" android:ems="10" android:background="#ffffffff" android:textSize="40sp" android:textStyle="bold" android:textColor="#ff333333" > <requestFocus /> </EditText> <TableLayout android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_weight="0.70" > <TableRow android:id="@+id/TableRow04" android:layout_width="110dp" android:layout_height="wrap_content" > <ImageButton android:id="@+id/ImageButton01" android:layout_width="100dp" android:layout_height="70dp" android:src="@drawable/c1" android:onClick="digital_click" android:background="#80bbe7" android:tag="1" /> <ImageButton android:id="@+id/ImageButton02" android:layout_width="100dp" android:layout_height="70dp" android:src="@drawable/c2" android:onClick="digital_click" android:background="#80bbe7" android:tag="2"/> <ImageButton android:id="@+id/ImageButton03" android:layout_width="100dp" android:layout_height="70dp" android:src="@drawable/c3" android:onClick="digital_click" android:background="#80bbe7" android:tag="3" /> </TableRow> <TableRow android:id="@+id/TableRow03" android:layout_width="110dp" android:layout_height="wrap_content" > <ImageButton android:id="@+id/ImageButton04" android:layout_width="100dp" android:layout_height="70dp" android:onClick="digital_click" android:src="@drawable/c4" android:background="#80bbe7" android:tag="4" /> <ImageButton android:id="@+id/ImageButton05" android:layout_width="100dp" android:layout_height="70dp" android:onClick="digital_click" android:src="@drawable/c5" android:background="#80bbe7" android:tag="5" /> <ImageButton android:id="@+id/ImageButton06" android:layout_width="100dp" android:layout_height="70dp" android:onClick="digital_click" android:src="@drawable/c6" android:background="#80bbe7" android:tag="6"/> </TableRow> <TableRow android:id="@+id/TableRow02" android:layout_width="110dp" android:layout_height="wrap_content" > <ImageButton android:id="@+id/ImageButton07" android:layout_width="100dp" android:layout_height="70dp" android:background="#80bbe7" android:onClick="digital_click" android:src="@drawable/c7" android:tag="7"/> <ImageButton android:id="@+id/ImageButton08" android:layout_width="100dp" android:layout_height="70dp" android:background="#80bbe7" android:onClick="digital_click" android:src="@drawable/c8" android:tag="8" /> <ImageButton android:id="@+id/ImageButton09" android:layout_width="100dp" android:layout_height="70dp" android:background="#80bbe7" android:onClick="digital_click" android:src="@drawable/c9" android:tag="9" /> </TableRow> <TableRow android:id="@+id/TableRow01" android:layout_width="110dp" android:layout_height="wrap_content" > <ImageButton android:id="@+id/ImageButton10" android:layout_width="100dp" android:layout_height="70dp" android:background="#80bbe7" android:onClick="digital_click" android:src="@drawable/c10" android:tag="*"/> <ImageButton android:id="@+id/ImageButton11" android:layout_width="100dp" android:layout_height="70dp" android:background="#80bbe7" android:onClick="digital_click" android:src="@drawable/c0" android:tag="0"/> <ImageButton android:id="@+id/ImageButton12" android:layout_width="100dp" android:layout_height="70dp" android:background="#80bbe7" android:onClick="digital_click" android:src="@drawable/c11" android:tag="#" /> </TableRow> </TableLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <ImageButton android:id="@+id/message" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="0.23" android:background="@drawable/b1" /> <ImageButton android:id="@+id/dialer" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1.17" android:onClick="dial" android:background="@drawable/b2" /> <ImageButton android:id="@+id/delete" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="delete" android:background="@drawable/b3" /> </LinearLayout> </LinearLayout>
需要注意的是必须要设置相对应的权限:
<uses-permission android:name="android.permission.CALL_PHONE"/>
<uses-permission android:name="android.permission.VIBRATE" />
短信功能(效果图如下):
实现该功能的主要代码为:
public void send(View view){ String telMsg=MainActivity.this.tel.getText().toString(); String contentMsg=MainActivity.this.content.getText().toString(); Uri uri=Uri.parse("smsto:"+telMsg);//接收人手机 Intent it=new Intent(); it.setAction(Intent.ACTION_SENDTO);//指定action,我要发短信 it.putExtra("sms_body", contentMsg);//设置信息内容 it.setType("vnd.android-dir/mms-sms") ;//设置MIME类型 it.setData(uri);//设置数据,要去的地方 MainActivity.this.startActivity(it); }
布局文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/LinearLayout1" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <TableLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <TableRow android:id="@+id/tableRow1" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="收信人:" /> <EditText android:id="@+id/tel" android:layout_width="wrap_content" android:layout_height="wrap_content" android:ems="10" > <requestFocus android:layout_width="wrap_content" /> </EditText> </TableRow> <TableRow android:id="@+id/tableRow2" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="内容:" /> <EditText android:id="@+id/content" android:layout_width="260px" android:layout_height="wrap_content" android:ems="10" android:lines="6" android:background="@layout/edit_bg" /> </TableRow> <Button android:id="@+id/send" android:layout_width="fill_parent" android:layout_height="wrap_content" android:onClick="send" android:text="发送短信" /> </TableLayout> </LinearLayout>
这里我是运用了edit_bg.xml来修饰内容框:
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="#EFEFEF"/> <corners android:radius="3dip" /> <stroke android:width="0.5px" android:color="#505050"/> </shape> </item> </layer-list>
相应的,也需要注意的是必须要设置相对应的权限:
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.WRITE_SMS" />
相关推荐
根据给定的“Android入门手册-中文版”的文件信息,我们可以从中提炼出一系列与Android开发相关的知识点,这些知识点覆盖了从Android系统的基本概念到实际应用开发的各个环节。下面,我们将详细解析这些知识点。 ##...
- **发送短信**:演示如何使用Intent发送短信。 - **拨打电话**:展示如何通过Intent实现拨号功能。 2. **权限管理**:介绍如何在AndroidManifest.xml文件中声明必要的权限,以确保应用能正确执行相应操作。 ####...
10. **短信发送**:`testSendSms`涉及到发送短信的功能。这需要使用SmsManager类,同时要了解相关的权限和限制。 通过这些实例,开发者可以逐步建立起对Android SDK的深入理解和实践能力。每个例子都是一次动手实践...
- **第 1 部分:快速入门**:学习 Android 的基本概念和术语。 - **第 2 部分:深入了解**:深入探索 Android 平台的工作原理和技术细节。 3. **面向 Java 开发者的 Xamarin**: - **应用程序基础知识**:掌握 ...
Android模拟器是一种软件工具,用于模拟Android设备的功能和行为,以便开发者可以在计算机上测试和调试Android应用程序。本文将详细介绍如何在MOS-DOS环境下安装、配置以及使用Android模拟器。 #### 二、准备工作 ...
电话拨号器是一款基于Android平台的应用程序,它整合了拨打电话和发送短信的功能,对于学习Android开发的新手来说,这是一个非常实用的入门级项目。在这个项目中,开发者将接触到Android的核心组件、用户界面设计...
- **使用方法**:通过Android系统或特定应用程序实现拨打电话和收发短信的功能。 - **应用场景**:适用于没有传统电话服务但需要语音通讯和短信交流的场合。 #### 二、建立Android编译环境 建立Android编译环境是...
应用程序层是Android系统中用户直接接触的部分,包含各种应用程序如拨号器、短信程序、浏览器等。应用程序框架层为开发者提供了构建应用程序时可能用到的各种API,这些API基于抽象层,使开发者可以构建功能丰富的...
- **USB3G上网卡短信发送**:通过标准API接口支持使用USB3G上网卡发送短信,拓展了设备的通信功能。 - **迷你型USB WiFi无线网卡**:兼容更多型号的WiFi网卡,如RT8192cu芯片,提升了无线网络连接的稳定性与速度。 ...
**摩托罗拉ME501**是一款由摩托罗拉公司推出的智能手机,它以其先进的功能和用户友好的设计受到用户的欢迎。这款手机作为一款Google Experience Phone,具有以下显著特点: - **超薄设计**:轻巧便携,方便携带。 - ...
5. **权限管理**:“短信窃听器”和“恶作剧软件”涉及敏感操作,这需要获取相应的Android权限。开发者需了解如何在AndroidManifest.xml中声明权限,以及在Android 6.0及以上版本中动态请求权限的流程。 6. **服务...
2. 消息功能:测试发送、接收、删除、编辑短信,支持MMS、彩信的功能测试。 3. 电话本:测试联系人添加、删除、查找、同步,以及导入导出功能。 4. 增值服务:如彩铃、游戏、应用下载等,需验证其安装、使用和计费的...
Intent提供了丰富的功能,使得应用程序能够执行多种操作,如打开网页、显示地图、拨打电话、发送邮件等。下面将详细解释标题和描述中的Intent实例,并逐一解析每个例子的功能。 1. **打开Web浏览器**: 使用`...