Red de conocimiento informático - Conocimiento informático - ¿El terminal portátil Android no puede realizar llamadas ni enviar mensajes de texto?

¿El terminal portátil Android no puede realizar llamadas ni enviar mensajes de texto?

¡Poder! 1 Propósito del caso

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