Activity文件public class MainActivity extends Activity implements OnLongClickListener {
private EditText et_main_number;
private EditText et_main_sms;
private Button btn_main_call;
private Button btn_main_send;
private OnClickListener onClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
if(v==btn_main_call) {//点击打电话
//Toast.makeText(MainActivity.this, "点击打电话", 0).show();
//1). 创建一个Intent(隐式)
//08-28 03:27:09.976: I/ActivityManager(1222): Displayed com.android.dialer/.DialtactsActivity: +535ms
String action = "android.intent.action.DIAL";
action = Intent.ACTION_DIAL;//一样的
Intent intent = new Intent(action);
//2). 携带数据
String number = et_main_number.getText().toString();
intent.setData(Uri.parse("tel:"+number)); //<data android:scheme="tel" />
//3). startActivity(intent)
startActivity(intent);
}else if(v==btn_main_send) {//点击发短信
Toast.makeText(MainActivity.this, "点击发短信", 0).show();
//1). 创建一个Intent(隐式)
//08-28 04:00:02.420: I/ActivityManager(1222): Displayed com.android.mms/.ui.ComposeMessageActivity: +132ms
Intent intent = new Intent(Intent.ACTION_SENDTO);//android.intent.action.SENDTO
//2). 携带数据(号码/内容)
String number = et_main_number.getText().toString();
String sms = et_main_sms.getText().toString();
intent.setData(Uri.parse("smsto:"+number));
//携带额外数据
intent.putExtra("sms_body", sms);
//3). startActivity(intent)
startActivity(intent);
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化视图对象
et_main_number = (EditText) findViewById(R.id.et_main_number);
et_main_sms = (EditText) findViewById(R.id.et_main_sms);
btn_main_call = (Button) findViewById(R.id.btn_main_call);
btn_main_send = (Button) findViewById(R.id.btn_main_send);
//给视图对象设置点击监听
btn_main_call.setOnClickListener(onClickListener);
btn_main_send.setOnClickListener(onClickListener);
//给视图对象设置长按监听
btn_main_call.setOnLongClickListener(this);
btn_main_send.setOnLongClickListener(this);
}
@Override
public boolean onLongClick(View v) {
if(v==btn_main_call) {//长按打电话
//Toast.makeText(MainActivity.this, "长按打电话", 0).show();
//1). 创建一个Intent(隐式)
//08-28 03:38:59.717: I/ActivityManager(1222): Displayed com.android.phone/.PrivilegedOutgoingCallBroadcaster: +570ms
Intent intent = new Intent(Intent.ACTION_CALL);//android.intent.action.CALL
//2). 携带数据
String number = et_main_number.getText().toString();
intent.setData(Uri.parse("tel:"+number));
//3). startActivity(intent)
startActivity(intent);
}else if(v==btn_main_send) {//长按发短信
Toast.makeText(MainActivity.this, "长按发短信", 0).show();
//1). 得到SmsManager的对象
SmsManager smsManager = SmsManager.getDefault();
//2). 发送文本信息(短信)
String number = et_main_number.getText().toString();
String sms = et_main_sms.getText().toString();
smsManager.sendTextMessage(number, null, sms, null, null);
}
return true;//不会再触发点击事件(表示此事件已经被消费了)
}
}
xml文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="电话号码: " />
<EditText
android:id="@+id/et_main_number"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="请输入号码">
</EditText>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="短信内容: " />
<EditText
android:id="@+id/et_main_sms"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="请输入短信">
</EditText>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<Button
android:id="@+id/btn_main_call"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="打电话" />
<Button
android:id="@+id/btn_main_send"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="发短信" />
</LinearLayout>
</LinearLayout>
AndroidManifest文件
<!-- 打电话的权限 -->
<uses-permission android:name="android.permission.CALL_PHONE"/>
<!-- 发短信的权限 -->
<uses-permission android:name="android.permission.SEND_SMS"/>