Android – Make a phone call

Android este, după cum bine se ştie, un sistem de operare destinat smartphone-urilor, iar pe lângă cunoscutele funcţii, un smartphone este capabil să efectueze şi un apel la un anumite număr. Nimic spectaculos până acum!  Ce-ar fi dacă am avea acces la funcţiile device-ului astfel încât să realizăm o aplicaţie capabilă să efectueze apeluri?! Acest lucru este posibil şi va fi demonstrat în codul ce va fi prezentat in continuare.

Pe lângă implementarea Java şi crearea unui design minimalist al aplicatiei trebuie să fie adăugată în fişierul manifest permisiunea aferentă realizării de apeluri telefonice şi anume:


<uses-permission android:name="android.permission.CALL_PHONE"/>

.

Fişierul xml utilizat pentru a realiza design-ul are ca şi componente principale un EditText şi un Button:


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:background="#FFFFFF"
 android:padding="10dip"
 android:gravity="center_horizontal">
 <TextView android:layout_width="fill_parent"
 android:layout_height = "wrap_content"
 android:layout_marginTop="50dip"
 android:text = "Make a phone call"
 android:textSize="25dip"
 android:textColor="#000000"
 android:textStyle="bold"
 android:gravity="center_horizontal"
 android:layout_marginBottom="10dip">
 </TextView>
 <TextView android:layout_width="fill_parent"
 android:layout_height = "wrap_content"
 android:layout_marginTop="50dip"
 android:gravity="left"
 android:text = "Phone No."
 android:textSize="18dip"
 android:textColor="#000000"
 android:layout_marginBottom="10dip">
 </TextView>
 <EditText android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:inputType="phone"
 android:id="@+id/eTxtPhoneNo">
 </EditText>
 <Button android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_marginTop="50dip"
 android:background="@drawable/phone"
 android:onClick="btnCall_onClick">
 </Button>
</LinearLayout>

Implementarea Java se concentrează pe tratarea evenimentului care permite ca la apăsarea butonului să fie realizat un apel telefonic:


package org.phone.call;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.ActivityNotFoundException;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.EditText;

public class MakeAPhoneCallActivity extends Activity
{
 EditText eTxtPhoneNo;

 /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState)
 {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.main);

 eTxtPhoneNo = (EditText)findViewById(R.id.eTxtPhoneNo);
 }

 public void btnCall_onClick(View v)
 {
 final String phoneNo = eTxtPhoneNo.getText().toString();
 if(phoneNo != null && phoneNo.length() > 0)
 {
 AlertDialog alertDialog = new AlertDialog.Builder(this).create();
 alertDialog.setTitle("Question");
 alertDialog.setMessage("Do you want to call this number: " + phoneNo + " ?");
 alertDialog.setButton("YES", new DialogInterface.OnClickListener()
 {
 public void onClick(DialogInterface dialog, int which)
 {
 try
 {
 String uri = "tel:"+phoneNo;
 Intent intent = new Intent(Intent.ACTION_CALL);
 intent.setData(Uri.parse(uri));
 startActivity(intent);
 }
 catch (ActivityNotFoundException activityException)
 {
 Log.e("ActivityNotFoundException", "upss");
 }
 }
 });
 alertDialog.setButton2("NO", new DialogInterface.OnClickListener()
 {
 public void onClick(DialogInterface dialog, int which)
 {
 }
 });
 alertDialog.setIcon(R.drawable.question);
 alertDialog.show();
 }
 else
 {
 AlertDialog alertDialog = new AlertDialog.Builder(this).create();
 alertDialog.setTitle("Alert");
 alertDialog.setMessage("Please add a phone number!");
 alertDialog.setButton("OK", new DialogInterface.OnClickListener()
 {
 public void onClick(DialogInterface dialog, int which)
 {
 }
 });
 alertDialog.setIcon(R.drawable.question);
 alertDialog.show();
 }
 }
}

Şi rezultatul: SUNĂĂĂĂĂĂĂĂĂ

Advertisements
Android – Make a phone call

2 thoughts on “Android – Make a phone call

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s