android开发学习:打电话和发短信

1.新建一个android项目

File——New——Other——android application project

填写application name(就是应用的名字,比如:天天酷跑)

填写project name(就是程序项目名,比如:TTKP,打包后名字也是TTKP.APP)

填写package name(程序包名,比如cn.tengxun.ttkp)

然后选择最小运行的android版本,最适合版本,编译版本,主题。

NEXT——NEXT——选择你android应用图标图片,然后完成。

然后我们要关注的res(放资源文件的,静态的文字可以写在里面)

src代码编程文件

gen(自动生成的资源ID生成文件)

AndroidManifest.xml是应用配置文件

res下的layout是布局的配置文件

2.编写一个打电话功能

先编写布局配置文件activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:orientation="vertical"
     android:layout_width="match_parent"
     android:layout_height="match_parent">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/phone_title" />
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/phone_title"
        android:id="@+id/telnum" />
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/phone_button"
        android:id="@+id/button"/>

</LinearLayout>

@的意思是操作gen下面的R.java文件的信息,获取;@+是创建。

编写一下文本的信息

res下面的value下的string.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">拨号器</string>
    <string name="hello_world">Hello world!</string>
    <string name="action_settings">Settings</string>
    <string name="phone_title">请输入手机号</string>
    <string name="phone_button">拨号</string>

</resources>

编写拨号事件代码

在src下的java代码

public class MainActivity extends Activity {
    private EditText edittext;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        edittext=(EditText) findViewById(R.id.telnum);
        Button button=(Button) this.findViewById(R.id.button);
        button.setOnClickListener(new ButtonClickListener());
    }

    private final class ButtonClickListener implements View.OnClickListener{
		@Override
		public void onClick(View v) {
			// TODO Auto-generated method stub
			String telnum=edittext.getText().toString();
			Intent intent=new Intent();
			intent.setAction("android.intent.action.CALL");
			intent.setData(Uri.parse("tel:"+telnum));
			startActivity(intent);
		}

    }}

最后你要获取你调用android打电话这个功能的权限

在AndroidManifest.xml应用配置文件

<uses-permission android:name="android.permission.CALL_PHONE" />

3.编写发短信功能

布局配置文件

   <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/phone_title"
        android:id="@+id/telnum" />
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:minLines="3"
        android:hint="@null"
        android:id="@+id/message"
        />
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/message_button"
        android:id="@+id/message_button"/>

string配置文件

<string name="message_button">发送短信</string>

java代码

public class MainActivity extends Activity {
	private EditText phonetext;
	private EditText edittext;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        phonetext=(EditText) findViewById(R.id.telnum);
		edittext=(EditText) findViewById(R.id.message);
        Button message_button=(Button) this.findViewById(R.id.message_button);
        message_button.setOnClickListener(new MessageButtonClickListener());

    }

    private final class MessageButtonClickListener implements View.OnClickListener{
		@Override
		public void onClick(View v) {
			//发短信
			String phoneNumber=phonetext.getText().toString();
			String message=edittext.getText().toString();
			SmsManager manager=SmsManager.getDefault();
			ArrayList<String> messages = manager.divideMessage(message);
			for(String content:messages){
			manager.sendTextMessage(phoneNumber, null, content, null, null);
		    }
    	    Toast.makeText(MainActivity.this, R.string.success, Toast.LENGTH_LONG).show();
    	    //写入短信记录
            ContentValues values = new ContentValues();
            values.put("address", phoneNumber);
            values.put("body", message);
            values.put("type", "2");
            values.put("read", "1");//1表示已读
            getContentResolver().insert(Uri.parse("content://sms/inbox"), values);  

        }
    }
}  

加入权限

    <uses-permission android:name="android.permission.SEND_SMS" />
    <uses-permission android:name="android.permission.WRITE_SMS"/>
    <uses-permission android:name="android.permission.READ_SMS"/>

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-01 22:25:19

android开发学习:打电话和发短信的相关文章

Android开发,URI 如:发短信,发彩信,调用通讯录等

一.直接拨打电话,与三不同的是,这个直接拨打电话,而不是打开拨号界面 Uri uri = Uri.parse("tel:10086"); Intent intent = new Intent(Intent.ACTION_CALL, uri); 二.打开拨号界面,类型是Intent.ACTION_DIAL Uri uri = Uri.parse("tel:10086"); Intent intent = new Intent(Intent.ACTION_DIAL, uri); 三.打开一个网页,类

iOS开发 调用打电话,发短信

1.调用 自带mail[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mailto://[email protected]"]]; 2.调用 电话phone[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://8008808888"]];iOS应用内拨打电话结束后返回应用一般在应用中拨打电话的方

Android实例-打电话、发短信和邮件,取得手机IMEI号(XE8+小米2)

结语: 1.不提示发短信卡住,点击没有反映,我猜想,可能是因为我用的是小米手机吧. 2.接收短信报错,我猜想可能是我改了里面的方法吧(哪位大神了解,求指教). 3.project -->options…--> users permitions. 3.1 Send SMS 3.2 Read Phone State权限:将其变成 true即可. 如果 read phone state为 false,程序将启动不了,一直黑屏(我没试,原作者是这么说的,你如果没事可以试一试,试过记得给我说一声哦).

iOS学习笔记(十四)——打电话、发短信

电话.短信是手机的基础功能,iOS中提供了接口,让我们调用.这篇文章简单的介绍一下iOS的打电话.发短信在程序中怎么调用. 1.打电话 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://10010"]];//打电话 使用openURL这个API打电话结束后,返回的是系统的拨打电话界面,如何才能返回自己的应用呢?有两种方法与大家分享. 第一种是用UIWebView加载电话,这种是合法的,可以上A

adb操作手机打电话、发短信

当我们使用adb命令操作手机的时候经常会报错 这个错误一般是adb的端口(5037)被占用,造成adb server无法启动,解决问题的思路就是查看是哪个程序占用了adb调试端口,然后结束掉它就行. 查找哪个进程占用了5037端口 netstat -aon|findstr "5037" 2.结束对应进程 可以看到PID为12500的程序占用了5037端口,打开任务管理器找到该进程对应程序sjk_daemon.exe,该进程是金山毒霸自带的金山手机助手,强制结束后会自动重启,只有卸掉金山

iOS打电话、发短信、发邮件功能

以下为学习过程中在网上查到的方法, 实现打电话的功能,主要二种方法,下面我就分别说说它们的优缺点. 1.1.发短信(1)——URL // 直接拨号,拨号完成后会停留在通话记录中 1.方法: NSURL *url = [NSURL URLWithString:@"sms://10010"]; [[UIApplication sharedApplication] openURL:url]; 2.优点: –简单 3.缺点: –不能指定短信内容,而且不能自动回到原应用 1.2发短信(2)——M

代码控制打电话、发短信、发邮件、打开手机app等操作

很多时候我们需要利用我门自己的app进行一些打电话.发短信等的操作,那么如何利用代码实现呢,下面就介绍一些简单的方法来实现这些操作. 打电话: <1>最简单.最直接的方法----直接跳转到拨号界面 NSURL *url = [NSURL URLWithString:@"tel://10010"]; [[UIApplication sharedApplication] openURL:url]; 缺点:打完电话后,不能跳回到原来的应用,而是直接停留在通话记录界面.      

利用手机中存储的电话号码给联系人打电话与发短信

1.将存储在数据库中的数据布局到手机界面上,其操作请见http://blog.csdn.net/xia09222826/article/details/28660653 2.三种效果显示出的效果分别是: 1)自定义的效果 2)单选的效果 3)多选的效果 3.点击某一个联系人进行拨打电话或者发送短信(以自定义的效果为例) 1)效果视图(比如点击了序号1的联系人):从手机电话备份界面跳转到PhoneandemailActitvity界面 2)程序实现 ①注册点击事件         lv_users

iOS应用调用系统打电话、发短信和发邮件功能

摘要: 在应用程序内,调用系统的功能来实现打电话.发短信和发邮件,通过电话号码或者邮箱,直接跳转到系统的功能界面. PS:调试好像只能真机调试,模拟器没有反应,真机就可以跳转,不知道是不是必须真机,但方法肯定是可行的. 1.打电话 应用内调用系统打电话有两种方式: 1)WebView方式 使用WebView来跳转,把电话号码通过URL传递给WebView,这种方式会弹出是否要拨打的提示,可以选择拨打或者不拨打,打完也会自动回到应用界面,推荐. UIWebView *callWebview =[[