¿El terminal portátil Android no puede realizar llamadas ni enviar mensajes de texto?
Este caso consolida el uso de actividades de Android, diseño LinearLayout, botones de controles básicos, llamadas y mensajes de texto, y la intención de comunicación interactiva de la aplicación a través de una herramienta de comunicación simple. Este caso se centra en el principio de procesamiento de eventos en Android y su aplicación en proyectos.
2 Introducción al caso
Zero Distance Communication es una herramienta de comunicación que puede enviar mensajes de texto y realizar llamadas sin importar en qué parte del mundo se encuentre, siempre que utilice Zero Distance Communication. , puede comunicarse con Sus amigos y familiares ahora tendrán una comunicación a distancia cero y sin barreras. La comunicación a distancia cero hará que su vida sea a distancia cero a partir de ahora.
3 Análisis de Caso
Este proyecto está desarrollado utilizando Android 2.3.3. Dado que el proyecto implementa principalmente las funciones de realizar llamadas y enviar mensajes de texto, el Intent se utiliza para activar el teléfono y los programas de SMS. El Intent utilizado en este artículo es el programa de llamadas Intent. El comportamiento del Intent es ACTION_DIAL y el teléfono de la persona que llama. El número se pasa en el Intent. Hay dos claves para realizar una llamada. Primero, agregue permisos de uso en AndroidManifest y declare el permiso android:name="android.permission.CALL_PHONE". Dado que las llamadas son el servicio subyacente de los teléfonos móviles y están estrechamente relacionadas con la privacidad del usuario y los cargos telefónicos, el programa debe obtener este permiso. En segundo lugar, introduzca el valor clave "ACTION_CALL" (Acción) personalizando el objeto Intent, introduzca el número de teléfono (Datos) ingresado por el usuario a través del método Uri.parse() y finalmente pase el método startActivity() para completar. .Para implementar la función de envío de SMS, debe utilizar el permiso para enviar SMS en el sistema Android, es decir, agregar el siguiente contenido en AndoridManifest.xml
lt uses-permissionandroid: name="android; .permission .SEND_SMS" /gt;
4 Diseño de caso
El flujo de eventos al hacer clic en los botones "Enviar SMS" y "Llamar" es el siguiente:
(1) es "SMS". Cree una fuente de evento para el botón "Llamar".
(2) Registre el origen del evento con la clase de escucha de eventos Click.
(3) El evento se activa cuando se hace clic en el botón "Enviar texto" o "Llamar" en el origen del evento y se llama al método onClick (Ver) en la clase de escucha de eventos para procesar el negocio. lógica.
5 Diseño de lógica empresarial
if(myeditText.getText().length()gt; 0{
Intent myIntent=new Intent(Intent.ACTION_CALL, Uri.parse("tel:")).myeditText.getText().toString()));
Phone.this.startActivity(myIntent);
}
String mobile=myEditText.getText().toString();
String content=EditText2.getText().toString()
SmsManager sms=SmsManager.getDefault; ();
PendingIntent sentintent =PendingIntent.getBroadcast(SmsActivity.this, 0, new Intent(), 0);
Primero está la representación:
La primera representación: ?
6 Implementación del caso:
Algunos códigos importantes implementados en el caso son los siguientes:
1 Interfaz de la página de inicio
lt;?xml version="1.0" encoding="utf-8"?gt
lt;RelativeLayout xmlns: android="/apk/res/android"
android:layout_width="fill_parent"
android:layout_height ="fill_parent"
android:fondo="@drawable/bg"
android:orientación = "vertical" gt;
lt Botón
android:id="@ id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_marginBottom= " 165dp"
android.layout_marginLeft="23dp"
android: background="@drawable/button"
android: text="Llamar" /gt
lt;Botón
android.layout_alignBottom="@ id/button1"
android: layout_alignParentRight="true"
android; : background="@drawable/button"
android: text="Mensajes de texto"
>
2. Actividad de la interfaz principal
clase pública SmsAndPhoneActivity extiende la actividad {
/** Se llama cuando se crea la actividad por primera vez. */
Botón botón1, botón2;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState) );
diseño setContentView(R.layout.main).
botón2);
//evento de escucha del botón
botón1.setOnClickListener(new OnClickListener() {
@Override
public void onClick (Ver v) {
//TODO código auxiliar de método generado automáticamente
//Saltar a la página de llamada
Intent intent = new Intent(SmsAndPhoneActivity.this,
Teléfono.clase);
startActivity(intención);
}
})
}); >
startActivity(intención); p>
button2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(Ver v) {
// TODO fragmento de método generado automáticamente
//Saltar a la página de mensajes de texto
Intent intent1=new Intent(SmsAndPhoneActivity.this,
SmsActivity .class);
startActivity(intención1);
}
});
}
3. Actividad de la interfaz de mensajería de texto
la clase pública SmsActivity extiende la actividad{
@Override
public void onCreate(Bundle saveInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sms); .layout.sms)layout.sms);
Botón butsend=(Botón)findViewById(R.id.butsend);
Final EditText myEditText=(EditText)findViewById(R. id.mobile);
p>
Final EditText EditText2=(EditText)findViewById(R.id.content);
butsend.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//TODO genera automáticamente un código auxiliar de método
String mobile= myEditText.
String mobile= myEditText() .toString();
String content=EditText2.getText().toString()
SmsManager sms=SmsManager.
getDefault();
PendingIntent sentintent =PendingIntent.getBroadcast(SmsActivity.this,
0, new Intent(),
); intente {
if(content. length()gt; 70)
{
Listlt; msgs=sms.divideMessage(content); p>
p>
for(String msg:msgs)
{
sms.
}
}
else
{
sms.sendTextMessage(móvil, nulo, contenido, sentintent, nulo
}
);}
} catch (Excepción e) {
// TODO: manejar la excepción
e.printStackTrace(); >}
)
Toast.makeText(SmsActivity.this, "SMS enviado correctamente", 1000).show()
}
}
});
4. Actividad de la interfaz de llamada
El teléfono de clase pública extiende la actividad{
@Override
public void onCreate(Bundle saveInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.phone); final EditText myeditText=( EditText) findViewById(R.layout.phone);
Final EditText myeditText=(EditText)id.myedittext
Botón butphone=( Botón) findViewById( R.id.butphone );
butphone.setOnClickListener(new OnClickListener() {
@Override
public void onClick(Ver v) {
/ / TODO genera automáticamente un código auxiliar de método
if(myeditText.getText().length()gt; 0).
{
Intent myIntent=new Intent (Intent.ACTION_CALL, Uri.parse
("tel:" myeditText.getText().toString()));
Phone.this.startActivity(myIntent)
p>
}
}
}
}
}
}
}
}
Descarga del código fuente: SmsAndPhone.zip