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);
//写入短信记录
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);
}
Toast.makeText(MainActivity.this, R.string.success, Toast.LENGTH_LONG).show();
}
}
}

增加权限

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

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

  1. IOS 开发调用打电话,发短信

    1.调用 自带mail[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mailto://admin@hzl ...

  2. IOS 开发,调用打电话,发短信,打开网址

    IOS 开发,调用打电话,发短信,打开网址   1.调用 自带mail [[UIApplication sharedApplication] openURL:[NSURL URLWithString: ...

  3. android打电话、发短信实现

    打电话: Intent intent = newIntent(Intent.ACTION_CALL,Uri.parse("tel:"+"156666666666" ...

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

    结果: 1.不提示发短信卡住,点击没有反映,我猜想,可能是因为我用的是小米手机吧. 2.接收短信报错,我猜想可能是我改了里面的方法吧(哪位大神了解,求指教). 3.project -->opti ...

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

    电话.短信是手机的基础功能,iOS中提供了接口,让我们调用.这篇文章简单的介绍一下iOS的打电话.发短信在程序中怎么调用. 1.打电话 [[UIApplication sharedApplicatio ...

  6. 打电话、发短信、web以及发邮件

    #import "ViewController.h" #import <MessageUI/MessageUI.h> //导入信息UI库 @interface View ...

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

    很多时候我们需要利用我门自己的app进行一些打电话.发短信等的操作,那么如何利用代码实现呢,下面就介绍一些简单的方法来实现这些操作. 一.打电话: <1>最简单.最直接的方法----直接跳 ...

  8. iOS10打电话、发短信、发邮件等小功能

    注意:iOS10.0以后,使用openURL会有延迟,需要使用 openURL: options: completionHandler: 一.概要 本文中主要就是介绍在iOS中实现打电话.发短信.发邮 ...

  9. delphi xe5 android 开发实现手机打电话和发短信

    转载自  http://www.raysoftware.cn/ 其实都可以通过intent和URI调用系统功能.Windows程序员可以理解成是ShellExecute.这个是万金油.可以有调用各种功 ...

随机推荐

  1. bzoj4009

    这是一道神题,首先我们不难先到整体二分吧 下面的问题就是,求出对于每个水果,有多少盘子是他的子路径 直接考虑不是很容易,我们换个思路,考虑对于每个盘子,哪些水果能包含它 我们假设盘子a,b,dep[a ...

  2. bzoj3996

    把这个式子弄清楚就知道这是最小割了 相当于,选某个点i有收入ai,i,会损失ci, 如果i,j都被选则有额外收入ai,j+aj,i 明显,对每个点i,连(s,i,∑ai,j) (i,t,ci) 对每对 ...

  3. android.util.AndroidRuntimeException: requestFeature() must be called before adding content 错误解决方法

    Activity全屏,网上的代码如下:protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstance ...

  4. 【highcharts】

    zoomType positioner

  5. 实现sqrt()函数

    求一个正数N的开方, 并且可以指定精度, 要求不能用库函数sqrt 方法一:如下所示,先求sqrt(N)的整数部分,再求小数点后1位,2位 ... ... 方法二:牛顿迭代法,根据公式 Ai+1 = ...

  6. 使用 document.onreadystatechange()来判断页面加载完

    document.onreadystatechange = subSomething;//当页面加载状态改变的时候执行这个方法. function subSomething() {  if(docum ...

  7. order by优化--Order By实现原理分析和Filesort优化

    在MySQL中的ORDER BY有两种排序实现方式: 1.利用有序索引获取有序数据 2.文件排序 在使用explain分析查询的时候,利用有序索引获取有序数据显示Using index.而文件排序显示 ...

  8. Hapoop原理及MapReduce原理分析

    Hapoop原理 Hadoop是一个开源的可运行于大规模集群上的分布式并行编程框架,其最核心的设计包括:MapReduce和HDFS.基于 Hadoop,你可以轻松地编写可处理海量数据的分布式并行程序 ...

  9. 【译】 AWK教程指南 8处理多行数据

    awk 每次从数据文件中只读取一行数据进行处理.awk是依照其内置变量 RS(Record Separator) 的定义将文件中的数据分隔成一行一行的Record.RS 的默认值是 "\n& ...

  10. 从百度API中获取天气

    网络上看到鱼C的Python入门课程不错,语言风格也引人入胜,想做个实验,这东西到底好不好入门, 就把这个视频推荐给老婆,让他试着学一下,做足了老婆的工作. 这不,这两天她很上心,学得很有成就感,我也 ...