android level 3

Preview:

DESCRIPTION

level 3 @ android camp @ devent 3 by amar ashour

Citation preview

Level 3

android camp

Maps ,Location-based Services

&Telephony API

The location-based services facility in Android sits on two pillars:

1-mappingmapping using the package com.google.android.maps,

2-Location-based APIsLocation-based APIs.using the package android.location

All we need to start is :All we need to start is :

1-Internet connection

2-accept the terms of google

Then , let's develop :D

Understanding the Mapping Package

Obtain your MD5 fingerprint 

Obtaining a map­api Key from Google (two keys) one for development with the emulator and another for production 

Understanding MapView and MapActivity

Let's get our MD5 locate your debug certificate

Let's get our MD5

keytool -list -alias androiddebugkey -keystore"FULL PATH OF YOUR debug.keystore FILE" -storepass android -keypass android

Enter the password : android (only if asked)

Get your API-key now

Use the link http://code.google.com/android/maps­api­signup.html

Then enter your MD5 and accept the terms

Now let's code :D

Now let's code :Dmainfest.xml

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.ashour.amar.map3" android:versionCode="1" android:versionName="1.0" >

<uses-sdk android:minSdkVersion="4" />

<<uses-permissionuses-permission android:nameandroid:name=="android.permission.INTERNET""android.permission.INTERNET" />/>

<application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <<uses-libraryuses-library android:nameandroid:name=="com.google.android.maps""com.google.android.maps" />/>

<activity android:label="@string/app_name" android:name=".Map3Activity" > <intent-filter > <action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application>

</manifest>

Now let's code :Dadd this at your layout

<com.google.android.maps.MapView android:id="@+id/mapview" android:layout_width="fill_parent" android:layout_height="wrap_content" android:apiKey="0HjFnVeWB501OoE879ht4U35shuIsabH6M5UUUw" android:clickable="true" />

Now let's code :DjavaActivity

public class Map2Activity extends MapActivity{ private MapView mapView;private GeoPoint pt;

/** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mapView = (MapView)findViewById(R.id.mapview); mapView.setBuiltInZoomControls(true); } @Override protected boolean isLocationDisplayed() { return true; }@Overrideprotected boolean isRouteDisplayed() {return true;}}

TELEPHONY API

With the telephony API you can work with messages , make calls and use the Internet to make calls VOIP

Now let's make SMS sender app :D

Send messages

You will use android.telephony.SmsManager class

Dont forget to add the permission android.permission.SEND_SMSandroid.permission.SEND_SMS

Sms codelayout code

<?xml version="1.0" encoding="utf-8"?><!-- This file is /res/layout/main.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 xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" >

<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Destination Address:" />

<EditText android:id="@+id/addrEditText" android:layout_width="fill_parent" android:layout_height="wrap_content" android:phoneNumber="true" android:text="01095996548" /> </LinearLayout>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" >

<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Text Message:" />

<EditText android:id="@+id/msgEditText" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="hello sms" /> </LinearLayout>

<Button android:id="@+id/sendSmsBtn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="doSend" android:text="Send Text Message" />

</LinearLayout>

Sms codeactivity code

public class SmsActivity extends Activity {/** Called when the activity is first created. */@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);}

public void doSend(View view) {EditText addrTxt = (EditText) findViewById(R.id.addrEditText);EditText msgTxt = (EditText) findViewById(R.id.msgEditText);try {sendSmsMessage(addrTxt.getText().toString(), msgTxt.getText().toString());Toast.makeText(this, "SMS Sent", Toast.LENGTH_LONG).show();} catch (Exception e) {Toast.makeText(this, "Failed to send SMS", Toast.LENGTH_LONG).show();e.printStackTrace();}}

@Overrideprotected void onDestroy() {super.onDestroy();}

private void sendSmsMessage(String address, String message)throws Exception {SmsManager smsMgr = SmsManager.getDefault();smsMgr.sendTextMessage(address, null, message, null, null);}}

I think you know your way now

Good books you can use

pro android 3 (my best ) OReilly ­ Learning Android professional android application development Pro   Android Media Developing Graphics 

thanks

Amar ashouramar_ashour@hotmail.com

https://www.facebook.com/amar.ashour

Recommended