Android integrates the call and text messaging functions, which can be called only,
Main. xml
[Html] <? Xml version = "1.0" encoding = "UTF-8"?>
<RelativeLayout xmlns: android = "http://schemas.android.com/apk/res/android"
Android: layout_width = "fill_parent"
Android: layout_height = "fill_parent">
<TextView
Android: id = "@ + id/textView"
Android: layout_width = "wrap_content"
Android: layout_height = "wrap_content"
Android: layout_alignParentLeft = "true"
Android: textSize = "14px"
Android: text = "phone number:"/>
<EditText
Android: id = "@ + id/etNum"
Android: layout_width = "fill_parent"
Android: layout_height = "wrap_content"
Android: layout_below = "@ + id/textView"
Android: textSize = "14px"/>
<EditText
Android: id = "@ + id/etMsg"
Android: layout_width = "fill_parent"
Android: layout_height = "100px"
Android: layout_below = "@ + id/etNum"
Android: textSize = "14px"/>
<Button
Android: id = "@ + id/btn_send"
Android: layout_width = "wrap_content"
Android: layout_height = "wrap_content"
Android: layout_alignParentRight = "true"
Android: layout_below = "@ + id/etMsg"
Android: textSize = "14px"
Android: text = "send SMS">
</Button>
<Button
Android: id = "@ + id/btn_call"
Android: layout_width = "wrap_content"
Android: layout_height = "wrap_content"
Android: layout_alignBaseline = "@ + id/btn_send"
Android: layout_alignBottom = "@ + id/btn_send"
Android: layout_toLeftOf = "@ + id/btn_send"
Android: text = "dialing"
Android: textSize = "14px"/>
</RelativeLayout>
<? Xml version = "1.0" encoding = "UTF-8"?>
<RelativeLayout xmlns: android = "http://schemas.android.com/apk/res/android"
Android: layout_width = "fill_parent"
Android: layout_height = "fill_parent">
<TextView
Android: id = "@ + id/textView"
Android: layout_width = "wrap_content"
Android: layout_height = "wrap_content"
Android: layout_alignParentLeft = "true"
Android: textSize = "14px"
Android: text = "phone number:"/>
<EditText
Android: id = "@ + id/etNum"
Android: layout_width = "fill_parent"
Android: layout_height = "wrap_content"
Android: layout_below = "@ + id/textView"
Android: textSize = "14px"/>
<EditText
Android: id = "@ + id/etMsg"
Android: layout_width = "fill_parent"
Android: layout_height = "100px"
Android: layout_below = "@ + id/etNum"
Android: textSize = "14px"/>
<Button
Android: id = "@ + id/btn_send"
Android: layout_width = "wrap_content"
Android: layout_height = "wrap_content"
Android: layout_alignParentRight = "true"
Android: layout_below = "@ + id/etMsg"
Android: textSize = "14px"
Android: text = "send SMS">
</Button>
<Button
Android: id = "@ + id/btn_call"
Android: layout_width = "wrap_content"
Android: layout_height = "wrap_content"
Android: layout_alignBaseline = "@ + id/btn_send"
Android: layout_alignBottom = "@ + id/btn_send"
Android: layout_toLeftOf = "@ + id/btn_send"
Android: text = "dialing"
Android: textSize = "14px"/>
</RelativeLayout> TestActivity. java
[Java] public class TestActivity extends Activity implements OnClickListener {
Private EditText etNum;
Private EditText etMes;
Private Button btnCall;
Private Button btnSend;
@ Override
Public void onCreate (Bundle savedInstanceState ){
Super. onCreate (savedInstanceState );
SetContentView (R. layout. main );
EtNum = (EditText) findViewById (R. id. etNum );
EtMes = (EditText) findViewById (R. id. etMsg );
BtnCall = (Button) findViewById (R. id. btn_call );
BtnSend = (Button) findViewById (R. id. btn_send );
// Register the listener
BtnCall. setOnClickListener (this );
BtnSend. setOnClickListener (this );
}
Public void onClick (View v ){
String pNum = etNum. getText (). toString ();
If (pNum. equals ("")){
Toast. makeText (this, "dear, enter a valid phone number! ", Toast. LENGTH_SHORT). show ();
} Else {
// Call
If (v. equals (btnCall )){
// Generate an intent for dialing
Intent intent = new Intent (Intent. ACTION_CALL, Uri. parse ("tel:" + pNum ));
// Dial
StartActivity (intent );
}
// Send
If (v. equals (btnSend )){
String msg = etMes. getText (). toString ();
If (msg. length ()> 70 ){
Toast. makeText (this, "dear, the text message is too long! ", Toast. LENGTH_SHORT). show ();
} Else if (etMes = null & msg. equals ("")){
Toast. makeText (this, "dear, enter the text message content! ", Toast. LENGTH_SHORT). show ();
} Else {
EtMes. setText ("sending ,,,");
// Get the SmsManager object for text message sending
SmsManager manage = SmsManager. getDefault ();
// Send a short message
Manage. sendTextMessage (pNum, null, msg, null, null );
EtMes. setText ("sms sent! ");
}
}
}
}
}
Public class TestActivity extends Activity implements OnClickListener {
Private EditText etNum;
Private EditText etMes;
Private Button btnCall;
Private Button btnSend;
@ Override
Public void onCreate (Bundle savedInstanceState ){
Super. onCreate (savedInstanceState );
SetContentView (R. layout. main );
EtNum = (EditText) findViewById (R. id. etNum );
EtMes = (EditText) findViewById (R. id. etMsg );
BtnCall = (Button) findViewById (R. id. btn_call );
BtnSend = (Button) findViewById (R. id. btn_send );
// Register the listener
BtnCall. setOnClickListener (this );
BtnSend. setOnClickListener (this );
}
Public void onClick (View v ){
String pNum = etNum. getText (). toString ();
If (pNum. equals ("")){
Toast. makeText (this, "dear, enter a valid phone number! ", Toast. LENGTH_SHORT). show ();
} Else {
// Call
If (v. equals (btnCall )){
// Generate an intent for dialing
Intent intent = new Intent (Intent. ACTION_CALL, Uri. parse ("tel:" + pNum ));
// Dial
StartActivity (intent );
}
// Send
If (v. equals (btnSend )){
String msg = etMes. getText (). toString ();
If (msg. length ()> 70 ){
Toast. makeText (this, "dear, the text message is too long! ", Toast. LENGTH_SHORT). show ();
} Else if (etMes = null & msg. equals ("")){
Toast. makeText (this, "dear, enter the text message content! ", Toast. LENGTH_SHORT). show ();
} Else {
EtMes. setText ("sending ,,,");
// Get the SmsManager object for text message sending
SmsManager manage = SmsManager. getDefault ();
// Send a short message
Manage. sendTextMessage (pNum, null, msg, null, null );
EtMes. setText ("sms sent! ");
}
}
}
}
} The code is only so simple, but you cannot call or send text messages. You need to obtain the permission to call or send text messages,
Add permissions to AndroidManifest. xml:
[Html] <uses-permission android: name = "android. permission. CALL_PHONE"/>
<Uses-permission android: name = "android. permission. SEND_SMS"/>
<Uses-permission android: name = "android. permission. CALL_PHONE"/>
<Uses-permission android: name = "android. permission. SEND_SMS"/>
You can call and send text messages to test two simulators. The number is the ID of the simulator, for example, 5554,
Test diagram:
I don't know why. Garbled text messages, sweated ,,,
PS: it seems that there is only a problem with the simulator. The real machine is okay.
From Hu HU's column