`
不过百里
  • 浏览: 4012 次
社区版块
存档分类
最新评论

Android入门( 3)--拨号功能和短信发送

阅读更多

这里主要是实现了手机通信,其主要实现了打电话功能和发送短信功能。

拨号界面如下(由于模拟器屏幕兼容问题,不能正常显示界面,手机上可正常显示):


 

点击时每个数字时,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" />

 

  • 大小: 204.4 KB
  • 大小: 198.3 KB
  • 大小: 73.6 KB
分享到:
评论

相关推荐

    Android入门手册-中文版

    根据给定的“Android入门手册-中文版”的文件信息,我们可以从中提炼出一系列与Android开发相关的知识点,这些知识点覆盖了从Android系统的基本概念到实际应用开发的各个环节。下面,我们将详细解析这些知识点。 ##...

    Android程序员入门(中文高清版)

    - **发送短信**:演示如何使用Intent发送短信。 - **拨打电话**:展示如何通过Intent实现拨号功能。 2. **权限管理**:介绍如何在AndroidManifest.xml文件中声明必要的权限,以确保应用能正确执行相应操作。 ####...

    65 个 Android 开发入门小例子下载

    10. **短信发送**:`testSendSms`涉及到发送短信的功能。这需要使用SmsManager类,同时要了解相关的权限和限制。 通过这些实例,开发者可以逐步建立起对Android SDK的深入理解和实践能力。每个例子都是一次动手实践...

    中文版android教程

    - 可以通过Intent启动其他应用或服务,例如拨打电话、发送短信等。 - 使用电话拨号盘功能涉及到与系统级别的交互,需要注意权限管理。 - **列表、菜单和其他View组件**: - Android提供了丰富的UI组件,用于构建...

    开始使用 Xamarin.Android 开发 Android 应用

    - **第 1 部分:快速入门**:学习 Android 的基本概念和术语。 - **第 2 部分:深入了解**:深入探索 Android 平台的工作原理和技术细节。 3. **面向 Java 开发者的 Xamarin**: - **应用程序基础知识**:掌握 ...

    电话拨号器

    电话拨号器是一款基于Android平台的应用程序,它整合了拨打电话和发送短信的功能,对于学习Android开发的新手来说,这是一个非常实用的入门级项目。在这个项目中,开发者将接触到Android的核心组件、用户界面设计...

    Tiny6410 Android开发指南

    - **使用方法**:通过Android系统或特定应用程序实现拨打电话和收发短信的功能。 - **应用场景**:适用于没有传统电话服务但需要语音通讯和短信交流的场合。 #### 二、建立Android编译环境 建立Android编译环境是...

    Google_Android_SDK开发范例集锦

    实现一个数字或模拟时钟应用,展示如何使用Android提供的API来实现时间和日期显示功能。 - **4.15 动态输入日期与时间** 介绍如何实现日期和时间的选择功能,包括使用DatePicker和TimePicker组件。 - **4.16 猜猜...

    Android基础知识详解【PDF文档】

    应用程序层是Android系统中用户直接接触的部分,包含各种应用程序如拨号器、短信程序、浏览器等。应用程序框架层为开发者提供了构建应用程序时可能用到的各种API,这些API基于抽象层,使开发者可以构建功能丰富的...

    Android 开发指南

    - **USB3G上网卡短信发送**:通过标准API接口支持使用USB3G上网卡发送短信,拓展了设备的通信功能。 - **迷你型USB WiFi无线网卡**:兼容更多型号的WiFi网卡,如RT8192cu芯片,提升了无线网络连接的稳定性与速度。 ...

    摩托罗拉ME501使用指南

    **摩托罗拉ME501**是一款由摩托罗拉公司推出的智能手机,它以其先进的功能和用户友好的设计受到用户的欢迎。这款手机作为一款Google Experience Phone,具有以下显著特点: - **超薄设计**:轻巧便携,方便携带。 - ...

    黑马程序员_2小时教你写一个安卓程序[第04天]课件源码

    5. **权限管理**:“短信窃听器”和“恶作剧软件”涉及敏感操作,这需要获取相应的Android权限。开发者需了解如何在AndroidManifest.xml中声明权限,以及在Android 6.0及以上版本中动态请求权限的流程。 6. **服务...

    NOKIA手机软件测试

    2. 消息功能:测试发送、接收、删除、编辑短信,支持MMS、彩信的功能测试。 3. 电话本:测试联系人添加、删除、查找、同步,以及导入导出功能。 4. 增值服务:如彩铃、游戏、应用下载等,需验证其安装、使用和计费的...

    intent实例

    Intent提供了丰富的功能,使得应用程序能够执行多种操作,如打开网页、显示地图、拨打电话、发送邮件等。下面将详细解释标题和描述中的Intent实例,并逐一解析每个例子的功能。 1. **打开Web浏览器**: 使用`...

Global site tag (gtag.js) - Google Analytics