拨打电话
<!-- 添加拨号的权限 -->
<uses-permission android:name="android.permission.CALL_PHONE"/>
- 点击事件一:
在布局文件中设置点击属性,并在代码中定义点击事件的方法。(开发很少用)
layout布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<EditText
android:id="@+id/number"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="number"/>
<Button
android:id="@+id/btn_call"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/number"
android:onClick="call" //设置点击事件
android:text="拨号" />
</RelativeLayout>
MainActivity中:
定义点击事件即定义call方法。
/**
* 当拨打此号码的按钮被点击时触发此方法.
*
*/
public void call(View v) {
System.out.println("拨打电话.");
// 1. 取出输入框中的号码
EditText etNumber = (EditText) findViewById(R.id.number);
String number = etNumber.getText().toString();
// 2. 根据号码拨打电话
Intent intent = new Intent(); // 创建一个意图
intent.setAction(Intent.ACTION_CALL); // 指定其动作为拨打电话
intent.setData(Uri.parse("tel:" + number)); // 指定将要拨出的号码
startActivity(intent); // 执行这个动作
}
- 点击事件二:
通过绑定Button的id,给按钮设置监听事件。
Button btnCall = (Button) findViewById(R.id.btn_call);
btnCall.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
System.out.println("MainUI2 拨打电话.");
call();
}
});
}
/**
* 拨打电话的业务方法,自定义私有。
*/
private void call() {
// 1. 取出输入框中的号码
EditText etNumber = (EditText) findViewById(R.id.number);
String number = etNumber.getText().toString();
// 2. 根据号码拨打电话
Intent intent = new Intent(); // 创建一个意图
intent.setAction(Intent.ACTION_CALL); // 指定其动作为拨打电话
intent.setData(Uri.parse("tel:" + number)); // 指定将要拨出的号码
startActivity(intent); // 执行这个动作
}
- 点击事件三:
通过自定义监听类实现
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); // 必须执行此句代码. 执行父类的初始化操作.
setContentView(R.layout.main);
Button btnCall = (Button) findViewById(R.id.btn_call);
btnCall.setOnClickListener(new MyOnClickListener());//设置内部类
}
//自定义内部监听类:
class MyOnClickListener implements OnClickListener {
@Override
public void onClick(View v) {
System.out.println("MainUI3 拨打号码..");
call(); //调用拨号方法
}
}
- 点击事件四:
通过MainActivity主类实现OnClickListener接口,并重写接口中的监听方法。
public class MainUI4 extends Activity implements OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btnCall = (Button) findViewById(R.id.btn_call);
btnCall.setOnClickListener(this); //传递this指向当前类。
}
//重写接口方法
@Override
public void onClick(View v) {
System.out.println("MainUI4 拨打号码..");
call();
}
}
发短信
开启一个子线程,循环发短信。
// 开启一个子线程. while(true) 循环发送短信
new Thread(new Runnable() {
@Override
public void run() {
while(true) {// 死循环发送短信
//休眠时间间隔,相当于Thread.sleep(1000);
SystemClock.sleep(5000);
SmsManager smsManager = SmsManager.getDefault(); // 短信管理器
smsManager.sendTextMessage(
"18511619290", // 收件人的号码
null, // 短信中心号码
"今晚小树林, 不见不散.",
null, // 如果发送成功, 回调此广播, 通知我们.
null); // 当对方接收成功, 回调此广播.
}
}
}).start();