Android e Facebook

Transcrição

Android e Facebook
Android e Facebook
Felipe Silveira
Android?
Sistema Operacional + Plataforma de desenvolvimento + Aplicações Padrão
(SMS, Maps, Calendar...)
Código aberto (AOSP - Android Open Source Project)
Desenvolvido pelo Google e posteriormente pela Open Handset Alliance
Histórico
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
Histórico
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:
Consórcio formado por mais de 50 empresas
Principais características
■
Ambiente multitask
■
Suporte nativo a GSM/3G, WI-FI, Bluetooth
■
Biblioteca Multimídia
■
(Formatos MPEG4, MP3, JPG, ...)
■
Suporte a Acelerômetro/GPS/Touchscreen...
Plataforma
Plataforma
O foco deste minicurso está na primeira camada citada: A camada de
Aplicações.
●
Escritas em JAVA ou C/C++ usando a NDK – Native Development Kit
●
Executadas sobre a DALVIK VM
●
Cada aplicação é executada em um diferente processo linux
●
Formadas por Activities e/ou Services
Plataforma
O que torna as aplicações android extremamente poderosas são as APIs
providas pela plataforma, que permitem às aplicações acessarem vários
recursos.
Plataforma
UI Widgets
Botões, listas, caixas de textos, etc.
android.widget.*
android.view.*
Telephony
Ligações telefônicas 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 versão
correta para seu sistema operacional.
Após completado o download, execute o instalador. Para que seja possível a
instalação, você precisará ter o Java SDK previamente instalado.
Emulador
Uma ferramenta muito útil para teste das aplicações é 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 características, como tamanho de tela, quantidade de
memória, etc.
Dessa forma, o primeiro passo para a execução do emulador é a criação de
um AVD, sobre o qual o emulador funcionará.
Para isso, vamos usar o Android Virtual Devices Manager.
Emulador
Emulador
Na tela para a criação do AVD, é necessário escolher um nome, que
representará o AVD, e o "target", que é versão de android que rodará nele. Só
são mostradas as versões de android instaladas na máquina local pelo SDK
Manager.
Também é necessário escolher o tamanho para o SD Card e o tamanho de
tela. essas opções 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 próxima tela, existem opções para mudar a escala da tela do emulador e
para apagar os dados do usuário, gravados em uma execução 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
Após isso, irá aparecer a tela
com as configurações de seu
projeto android.
Nesta tela, você irá inserir o
nome da sua aplicação, o
package e as versões de
android que ela irá suportar.
Após preencher os campos,
clique em Next
Criando o projeto
A próxima tela contém opções
para criação do ícone da
aplicação e a localização do
projeto.
Após preencher os campos,
clique em Next
Criando o projeto
Na próxima tela, é possível
configurar o ícone padrão da
aplicação.
Após preencher os campos,
clique em Next
Criando o projeto
A próxima tela contém as
opções da Activity a ser criada.
Após preencher os campos,
clique em Next
Criando o projeto
Por fim, a última tela do
assistente de criação permite
que seja alterado o nome da
Activity principal da aplicação a
ser criada.
Após preencher os campos,
clique em Finish
Download do SDK
Tudo o que precisamos está na página de desenvolvedores do Facebook
(https://developers.facebook.com). Logo na home do site temos três botões
com as opções: iOS, Android e Internet. No nosso caso, podemos optar pela
segunda opção.
Essa página contém diversas opções como o “Getting Started”, o “Technical
Guides”, com guias técnicos que permitem aos desenvolvedores aprenderem
de forma rápida features muito interessantes que podem ser acopladas aos
seus aplicativos. Mas, o principal nesta página é o “ Download the SDK”. Clique
no arquivo, baixe e descompacte-o em um diretório de sua escolha.
Importando o SDK
Para poder usar o SDK do facebook, é
necessário importá-lo no eclipse.
Para fazer isso, acesse o menu
File > Import
E então selecione "Existing Android
Code Into Workspace" e clique em Next.
Importando o SDK
Na próxima tela, selecione o diretório
onde foi salvo o SDK e clique em Finish
Registrando-se no facebook
Antes de começar a usar o SDK, é necessário registrar a sua aplicação a ser
criada no site de desenvolvedores do facebook.
Na página de desenvolvedores, temos uma opções no menu superior
chamada de “Apps” , clique neste link e posteriormente, em “+ Criar Novo
Aplicativo”.
Registrando-se no facebook
Registrando-se no facebook
Na página que o leitor visualizar, já temos as informações de AppId e
AppSecret criadas, além de outras informações básicas. Para nosso caso
Android, é importante descer a página um pouco, até chegar em “ Selecione o
modo como seu aplicativo se integra com o Facebook”. Escolha a opção
“Native Android App”.
Ao checar esta opção, nos deparamos com cinco campos, dos quais
precisamos preencher somente os três primeiros.
Registrando-se no facebook
Na página que o leitor visualizar, já temos as informações de AppId e
AppSecret criadas, além de outras informações básicas. Para nosso caso
Android, é importante descer a página um pouco, até chegar em “ Selecione o
modo como seu aplicativo se integra com o Facebook”. Escolha a opção
“Native Android App”.
Ao checar esta opção, nos deparamos com cinco campos, dos quais
precisamos preencher somente os três primeiros.
Registrando-se no facebook
Para termos o Key Hash em mãos precisamos usar três linhas de comando. A primeira
chamando o keyTool, que está presente na pasta bin do diretório de instalação 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
localização no –keystore. A senha que será solicitada será android.
Registrando-se no facebook
As próximas 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) contém 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 botão
direito nas propriedades do projeto,
em Android temos a parte de
referência na parte inferior da janela.
Clique em Add e escolha o
FacebookSDK.
Usando o SDK
Passo 2
O segundo passo é alterar o Manifest da aplicação 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 métodos 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");
}
Dúvidas?
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

Documentos relacionados

Apresentação Engº Mário Fernandes - Siteinforma

Apresentação Engº Mário Fernandes - Siteinforma 1.  Android SDK (Software Development Kit) 2.  IDE (Integrated Development Environment) o  Ambiente integrado para desenvolvimento de Software;

Leia mais