Vous êtes sur la page 1sur 44

Android e Facebook

Felipe Silveira
felipesilveira.com.br
Android?
Sistema Operacional + Plataforma de desenvolvimento + Aplicaes Padro
(SMS, Maps, Calendar...)
Cdigo aberto (AOSP - Android Open Source Project)
Desenvolvido pelo Google e posteriormente pela Open Handset Alliance
Histrico
2003: Andy Rubin, Rich Miner, Nick Sears e Chris White fundam a Android, Inc
2005: Google efetua a compra da Android, Inc
2007: Open Handset Alliance announced along with Android
2008 - Android 1.0 is released
Histrico
2009 - Android 1.1
2009 - Android 1.5 / Cupcake
2009 - Android 1.6 / Donut
2009 - Android 2.0/2.1 / Eclair
2010 - Android 2.2 / Froyo
2010 - Android 2.3 / Gingerbread
2011 - Android 3.0 / Honeycomb Tablet-optimized
2011 Android 3.1 USB host support
2011 Android 4.0 / Ice-Cream Sandwich merge
Gingerbread and Honeycomb22
2012 -Android 4.1 / Jelly Bean
Open Handset Alliance
Open Handset Alliance:
Consrcio formado por mais de 50 empresas
Principais caractersticas
Ambiente multitask
Suporte nativo a GSM/3G, WI-FI, Bluetooth
Biblioteca Multimdia
(Formatos MPEG4, MP3, JPG, ...)
Suporte a Acelermetro/GPS/Touchscreen...
Plataforma
Plataforma
O foco deste minicurso est na primeira camada citada: A camada de
Aplicaes.
Escritas em JAVA ou C/C++ usando a NDK Native Development Kit
Executadas sobre a DALVIK VM
Cada aplicao executada em um diferente processo linux
Formadas por Activities e/ou Services
Plataforma
O que torna as aplicaes android extremamente poderosas so as APIs
providas pela plataforma, que permitem s aplicaes acessarem vrios
recursos.
Plataforma
UI Widgets
Botes, listas, caixas de textos, etc.
android.widget.*
android.view.*
Telephony
Ligaes telefnicas e envio/recebimento de SMS.
android.telephony.IPhone
android.telephony.gsm.SmsManager
Camera android.hardware.CameraDevice
Web client android.webkit.WebView
HTTP org.apache.http.client.*
Database (SQLite) android.database.*
Google Maps com.google.android.maps.MapView
Location android.location.*
Multimedia android.media.*
Ambiente
Antes de tudo, vamos precisar do Android SDK.
Para fazer o download, v at developer.android.com/sdk e selecione a verso
correta para seu sistema operacional.
Aps completado o download, execute o instalador. Para que seja possvel a
instalao, voc precisar ter o Java SDK previamente instalado.
Emulador
Uma ferramenta muito til para teste das aplicaes o emulador, que
parte do SDK Android.
Para usarmos o emulador, preciso antes entender o conceito de AVD -
Android Virtual Device. O AVD serve para "representar" um dispositivo real, ou
seja, ele vai ter as suas caractersticas, como tamanho de tela, quantidade de
memria, etc.
Dessa forma, o primeiro passo para a execuo do emulador a criao de
um AVD, sobre o qual o emulador funcionar.
Para isso, vamos usar o Android Virtual Devices Manager.
Emulador
Emulador
Na tela para a criao do AVD, necessrio escolher um nome, que
representar o AVD, e o "target", que verso de android que rodar nele. S
so mostradas as verses de android instaladas na mquina local pelo SDK
Manager.
Tambm necessrio escolher o tamanho para o SD Card e o tamanho de
tela. essas opes podem ficar como no screenshot a seguir.
Emulador
Emulador
Depois de criado o AVD, basta selecion-lo na lista e clicar em "Start..."
Emulador
Na prxima tela, existem opes para mudar a escala da tela do emulador e
para apagar os dados do usurio, gravados em uma execuo anterior (Wipe
user data)
Emulador
Criando o projeto
Passo 1 Criando o projeto no Eclipse
Abra o Eclipse, v at File > New > Project
Na tela que aparecer, escolha Android Project e clique em Next.
Criando o projeto
Criando o projeto
Aps isso, ir aparecer a tela
com as configuraes de seu
projeto android.
Nesta tela, voc ir inserir o
nome da sua aplicao, o
package e as verses de
android que ela ir suportar.
Aps preencher os campos,
clique em Next
Criando o projeto
A prxima tela contm opes
para criao do cone da
aplicao e a localizao do
projeto.
Aps preencher os campos,
clique em Next
Criando o projeto
Na prxima tela, possvel
configurar o cone padro da
aplicao.
Aps preencher os campos,
clique em Next
Criando o projeto
A prxima tela contm as
opes da Activity a ser criada.
Aps preencher os campos,
clique em Next
Criando o projeto
Por fim, a ltima tela do
assistente de criao permite
que seja alterado o nome da
Activity principal da aplicao a
ser criada.
Aps preencher os campos,
clique em Finish
Download do SDK
Tudo o que precisamos est na pgina de desenvolvedores do Facebook
(https://developers.facebook.com). Logo na home do site temos trs botes
com as opes: iOS, Android e Internet. No nosso caso, podemos optar pela
segunda opo.
Essa pgina contm diversas opes como o Getting Started, o Technical
Guides, com guias tcnicos que permitem aos desenvolvedores aprenderem
de forma rpida features muito interessantes que podem ser acopladas aos
seus aplicativos. Mas, o principal nesta pgina o Download the SDK. Clique
no arquivo, baixe e descompacte-o em um diretrio de sua escolha.
Importando o SDK
Para poder usar o SDK do facebook,
necessrio import-lo no eclipse.
Para fazer isso, acesse o menu
File > Import
E ento selecione "Existing Android
Code Into Workspace" e clique em Next.
Importando o SDK
Na prxima tela, selecione o diretrio
onde foi salvo o SDK e clique em Finish
Registrando-se no facebook
Antes de comear a usar o SDK, necessrio registrar a sua aplicao a ser
criada no site de desenvolvedores do facebook.
Na pgina de desenvolvedores, temos uma opes no menu superior
chamada de Apps , clique neste link e posteriormente, em + Criar Novo
Aplicativo.
Registrando-se no facebook
Registrando-se no facebook
Na pgina que o leitor visualizar, j temos as informaes de AppId e
AppSecret criadas, alm de outras informaes bsicas. Para nosso caso
Android, importante descer a pgina um pouco, at chegar em Selecione o
modo como seu aplicativo se integra com o Facebook. Escolha a opo
Native Android App.
Ao checar esta opo, nos deparamos com cinco campos, dos quais
precisamos preencher somente os trs primeiros.
Registrando-se no facebook
Na pgina que o leitor visualizar, j temos as informaes de AppId e
AppSecret criadas, alm de outras informaes bsicas. Para nosso caso
Android, importante descer a pgina um pouco, at chegar em Selecione o
modo como seu aplicativo se integra com o Facebook. Escolha a opo
Native Android App.
Ao checar esta opo, nos deparamos com cinco campos, dos quais
precisamos preencher somente os trs primeiros.
Registrando-se no facebook
Para termos o Key Hash em mos precisamos usar trs linhas de comando. A primeira
chamando o keyTool, que est presente na pasta bin do diretrio de instalao do JDK.
keytool -exportcert -alias androiddebugkey -keystore /Users/felipesilveira/.
android/debug.keystore > ~/Desktop/cert
O alias sempre ser androiddebugkey porque estamos exportando o certificado da
chave de debug usado pelo Android SDK. Esta chave est geralmente (no caso do
Window) em C:/Users/NOME_USUARIO/.android/debug.keystore. Passamos essa
localizao no keystore. A senha que ser solicitada ser android.
Registrando-se no facebook
As prximas duas linhas de comandos podem ser usadas em qualquer
programa baixado de OpenSSL.
openssl sha1 -binary -out cert_out cert
openssl base64 -out certBase64 cert_out
O arquivo gerado (certBase64) contm a keyhash que deve ser cadastrada no
portal do facebook, como na figura a seguir.
Registrando-se no facebook
Usando o SDK
Passo 1
Para usar o SDK, o primeiro passo a
fazer associar o Facebook SDK ao
nosso projeto. Clique com o boto
direito nas propriedades do projeto,
em Android temos a parte de
referncia na parte inferior da janela.
Clique em Add e escolha o
FacebookSDK.
Usando o SDK
Passo 2
O segundo passo alterar o Manifest da aplicao da seguinte forma:
Usando o SDK
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.helloworld"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />

<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.helloworld.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="1448222098736888"/>
<activity android:name="com.facebook.LoginActivity"></activity>
</application> </manifest>
Usando o SDK
Passo 3
O terceiro passo alterar a MainActivity. Os seguintes mtodos devem ser
adicionados:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
}
Usando o SDK
public void postToFacebook(){
Session.openActiveSession(this, true,
new Session.StatusCallback() {
public void call(Session session, SessionState state, Exception exception) {
if (session.isOpened()) {
if (hasPublishPermission()) {
Request.executeStatusUpdateRequestAsync(session, "Teste UNASP", new Request.Callback() {
public void onCompleted(Response response) {
if (response.getError() == null) {
CharSequence text = "Mensagem postada com sucesso!";
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(MainActivity.this, text, duration);
toast.show();
} else {
CharSequence text = "Ocorreu um erro.";
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(MainActivity.this, text, duration);
toast.show();
}
}
});
} else {
requirePermission();
}
}
}
});
}
Usando o SDK
private void requirePermission() {
Session session = Session.getActiveSession();
Session.NewPermissionsRequest newPermissionsRequest = new Session
.NewPermissionsRequest(this, Arrays.asList("publish_actions"));
session.requestNewPublishPermissions(newPermissionsRequest);
}
private boolean hasPublishPermission() {
Session session = Session.getActiveSession();
return session != null && session.getPermissions().contains("publish_actions");
}
Dvidas?
Fontes
Criando um Aplicativo Android com Compartilhamento via Facebook
http://itweb.com.br/blogs/criando-um-aplicativo-android-com-compartilhamento-via-facebook/
Android Developers
http://developer.android.com

Vous aimerez peut-être aussi