SlideShare ist ein Scribd-Unternehmen logo
1 von 63
Android Wear 
Heider Lopes
Quem sou? 
• Desenvolvedor na B2W Digital 
• Integrante do Things Hacker Team 
• Palestrante 
• Mantenedor do site: heiderlopes.com.br
Eu nas Redes Sociais 
twitter.com/heiderlopes 
linkedin.com/pub/heider-lopes 
github.com/heiderlopes 
slideshare.net/heiderlopes
Agenda 
• O que é Android Wear? 
• O que são dispositivos wareables? 
• Como funciona? 
• Formas de integração 
• Dicas de desenvolvimento 
• Demos
O que é o Android Wear? 
É uma plataforma desenvolvida pelo Google 
para dispositivos wareables.
O que são wareables? 
● Pequenos dispositivos poderosos, usados no 
corpo 
● Fornecem informações úteis quando você 
mais precisa 
● Respostas inteligentes a perguntas faladas 
● Ferramentas para ajudar alcançar objetivos 
fitness
O que é o Android Wear? 
Atualmente utilizado por relógios 
Samsung Gear Live 
LG G Watch Moto 360
O que é o Android Wear? 
ZenWatch 
Sony SmartWatch 3
O que é o Android Wear? 
Pode expandir para outros wearable como 
sapatos, caneta, correntes, brincos, entre 
outros.
Vídeo de Introdução
Imaginem
Já temos aplicativos para isso?
Como funciona? 
Conecta via Bluetooth com dispositivos 
que rodam Android 4.3 ou superior
Desenvolvimento para Android Wear
Desenvolvimento para Android Wear
Compatibilidade 
São encontradas via Google Play Services e 
no Android Support Library
Formas de Integração
Notificações
Exemplo de Notificacao 
int notificationId = 001; 
// Build intent for notification content 
Intent viewIntent = new Intent(this, ViewEventActivity.class); 
viewIntent.putExtra(EXTRA_EVENT_ID, eventId); 
PendingIntent viewPendingIntent = 
PendingIntent.getActivity(this, 0, viewIntent, 0); 
NotificationCompat.Builder notificationBuilder = 
new NotificationCompat.Builder(this) 
.setSmallIcon(R.drawable.ic_event) 
.setContentTitle(eventTitle) 
.setContentText(eventLocation) 
.setContentIntent(viewPendingIntent); 
// Get an instance of the NotificationManager service 
NotificationManagerCompat notificationManager = 
NotificationManagerCompat.from(this); 
// Build the notification and issues it with notification manager. 
notificationManager.notify(notificationId, notificationBuilder.build());
Add Action Buttons
Exemplo de Action button 
// Build an intent for an action to view a map 
Intent mapIntent = new Intent(Intent.ACTION_VIEW); 
Uri geoUri = Uri.parse("geo:0,0?q=" + Uri.encode(location)); 
mapIntent.setData(geoUri); 
PendingIntent mapPendingIntent = 
PendingIntent.getActivity(this, 0, mapIntent, 0); 
NotificationCompat.Builder notificationBuilder = 
new NotificationCompat.Builder(this) 
.setSmallIcon(R.drawable.ic_event) 
.setContentTitle(eventTitle) 
.setContentText(eventLocation) 
.setContentIntent(viewPendingIntent) 
.addAction(R.drawable.ic_map, 
getString(R.string.map), mapPendingIntent);
Big View
Big View 
BigTextStyle bigStyle = new NotificationCompat.BigTextStyle(); 
bigStyle.bigText(eventDescription); 
NotificationCompat.Builder notificationBuilder = 
new NotificationCompat.Builder(this) 
.setSmallIcon(R.drawable.ic_event) 
.setLargeIcon(BitmapFactory.decodeResource( 
getResources(), R.drawable.notif_background)) 
.setContentTitle(eventTitle) 
.setContentText(eventLocation) 
.setContentIntent(viewPendingIntent) 
.addAction(R.drawable.ic_map, 
getString(R.string.map), mapPendingIntent) 
.setStyle(bigStyle);
Adding Pages to a Notification
Pages to a Notification 
NotificationCompat.Builder notificationBuilder = 
new NotificationCompat.Builder(this) 
.setSmallIcon(R.drawable.new_message) 
.setContentTitle("Page 1") 
.setContentText("Short message") 
.setContentIntent(viewPendingIntent); 
// Create a big text style for the second page 
BigTextStyle secondPageStyle = new NotificationCompat.BigTextStyle(); 
secondPageStyle.setBigContentTitle("Page 2") 
.bigText("A lot of text..."); 
// Create second page notification 
Notification secondPageNotification = 
new NotificationCompat.Builder(this) 
.setStyle(secondPageStyle) 
.build(); 
// Add second page with wearable extender and extend the main notification 
Notification twoPageNotification = 
new WearableExtender() 
.addPage(secondPageNotification) 
.extend(notificationBuilder) 
.build(); 
// Issue the notification 
notificationManager = 
NotificationManagerCompat.from(this); 
notificationManager.notify(notificationId, twoPageNotification);
Empilhamento de Notificações
Stacking Notifications 
final static String GROUP_KEY_EMAILS = "group_key_emails"; 
// Build the notification, setting the group appropriately 
Notification notif = new NotificationCompat.Builder(mContext) 
.setContentTitle("New mail from " + sender1) 
.setContentText(subject1) 
.setSmallIcon(R.drawable.new_mail); 
.setGroup(GROUP_KEY_EMAILS) 
.build(); 
// Issue the notification 
NotificationManagerCompat notificationManager = 
NotificationManagerCompat.from(this); 
notificationManager.notify(notificationId1, notif); 
Notification notif2 = new NotificationCompat.Builder(mContext) 
.setContentTitle("New mail from " + sender2) 
.setContentText(subject2) 
.setSmallIcon(R.drawable.new_mail); 
.setGroup(GROUP_KEY_EMAILS) 
.build();
Recebimento de voz
<?xml version="1.0" encoding="utf-8"?> 
<resources> 
<string-array name="reply_choices"> 
<item>Sim</item> 
<item>Não</item> 
<item>Talvez</item> 
</string-array> 
</resources>
public static final EXTRA_VOICE_REPLY = "extra_voice_reply"; 
... 
String replyLabel = getResources().getString(R.string.reply_label); 
String[] replyChoices = getResources().getStringArray(R.array.reply_choices); 
RemoteInput remoteInput = new RemoteInput.Builder(EXTRA_VOICE_REPLY) 
.setLabel(replyLabel) 
.setChoices(replyChoices) 
.build();
// Create an intent for the reply action 
Intent replyIntent = new Intent(this, ReplyActivity.class); 
PendingIntent replyPendingIntent = 
PendingIntent.getActivity(this, 0, replyIntent, 
PendingIntent.FLAG_UPDATE_CURRENT); 
// Create the reply action and add the remote input 
NotificationCompat.Action action = 
new NotificationCompat.Action.Builder(R.drawable.ic_reply_icon, 
getString(R.string.label, replyPendingIntent)) 
.addRemoteInput(remoteInput) 
.build(); 
// Build the notification and add the action via WearableExtender 
Notification notification = 
new NotificationCompat.Builder(mContext) 
.setSmallIcon(R.drawable.ic_message) 
.setContentTitle(getString(R.string.title)) 
.setContentText(getString(R.string.content)) 
.extend(new WearableExtender().addAction(action)) 
.build(); 
// Issue the notification 
NotificationManagerCompat notificationManager = 
NotificationManagerCompat.from(mContext); 
notificationManager.notify(notificationId, notification);
private CharSequence getMessageText(Intent intent) { 
Bundle remoteInput = RemoteInput.getResultsFromIntent(intent); 
if (remoteInput != null) { 
return remoteInput.getCharSequence(EXTRA_VOICE_REPLY); 
} 
} 
return null; 
}
Comando de Voz 
Podemos recuperar informações e executar 
tarefas no wearable e no dispositivo portátil 
emparelhado
Envio de Textos 
Envio de textos, mensagens instantâneas e e-mails 
("enviar Heider Lopes mensagem 
Testando o Android Wear", e em seguida, falar a 
sua mensagem).
Obter respostas 
Obter respostas a essas questões importantes 
da vida, como: "será que vai chover hoje à 
tarde?"
Obter direções 
Obter direções por exemplo: "como chegar na 
Rua Funchal?". 
São disparados Cards no Weareable e vibra na 
hora de fazer uma curva
Criar lembretes 
Criar lembrate para um determinado período de 
tempo ou “Quando”. 
O Android Wear detecta que você está em um 
local específico e te ajuda a lembrar o que tem a 
fazer. 
("lembre-me de enviar e-mail quando chegar no 
trabalho.")
Criar notas 
Tomar notas usando o Google Keep ("tomar 
nota, terminar a apresentação de Android Wear 
para o GDG")
Abrir aplicativo no Dispostivo Pareado 
Abrir aplicativo no Smartphone ou Tablet 
("Abrir Facebook")
Criando Apps Wearable
APIS Não Suportadas 
• android.webkit 
• android.print 
• android.appwidget 
• android.hardware.usb
Enviar Dados
Debugando pelo Bluetooth 
Os passos podem ser acessados através do site 
do desenvolvedor: 
https://developer.android.com/training/weara 
bles/apps/bt-debugging.html
Configurar Dispositivo para Debug
Habilitando no Mobile
Habilitando no Wear
Configurando a sessão de Debug 
adb -s localhost:4444 <command> 
adb -e logcat 
adb -e shell 
lConecte seu mobile com a máquina através da USB 
adb forward tcp:4444 localabstract:/adb-hub; adb connect localhost:4444
Dicas de Desenvolvimento
Dicas de Desenvolvimento 
Manter questionando como você usaria um 
relógio tradicional.
Dicas de Desenvolvimento 
Portanto, uma grande parte da concepção de 
um aplicativo bem sucedido é ser fácil de usar.
Dicas de Desenvolvimento 
Suas cartas de notificação só deve exibir uma 
única peça de informação.
Dicas de Desenvolvimento 
Se você precisa de mais informações, use 
páginas adicionais ao invés de tentar espremer 
mais informações em um único cartão.
Manter texto a um mínimo 
Seu cartão de notificação deve conter apenas 
palavras e frases curtas, e não frases 
completas.
Manter texto a um mínimo 
Um truque para manter o texto a um mínimo é 
comunicar cada pedaço de informação através 
de um ícone e valor.
Fazer uso de imagens de fundo 
A utilização de imagens de fundo serve para 
fornecer formas diferentes de notificações para 
seu aplicativo.
Obrigado pela participação!!! 
Confira mais novidade no QRCode acima

Weitere ähnliche Inhalte

Ähnlich wie Android Wear: Expandindo as funcionalidades do seu Android

Aprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma práticaAprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma práticaJosué Rockefeller
 
Desenvolvendo aplicações Adobe AIR para Android
Desenvolvendo aplicações Adobe AIR para AndroidDesenvolvendo aplicações Adobe AIR para Android
Desenvolvendo aplicações Adobe AIR para AndroidEric Cavalcanti
 
Curso de android
Curso de androidCurso de android
Curso de androidflaviokreis
 
Desenvolvimento de Aplicações para Dispositivos Móveis - Android Studio - Par...
Desenvolvimento de Aplicações para Dispositivos Móveis - Android Studio - Par...Desenvolvimento de Aplicações para Dispositivos Móveis - Android Studio - Par...
Desenvolvimento de Aplicações para Dispositivos Móveis - Android Studio - Par...Elmano Cavalcanti
 
Introdução ao Google TV
Introdução ao Google TVIntrodução ao Google TV
Introdução ao Google TVAécio Costa
 
Computação ubíqua, o que isso tem a ver Android Wear? - LinguÁgil 2016
Computação ubíqua, o que isso tem a ver Android Wear? - LinguÁgil 2016Computação ubíqua, o que isso tem a ver Android Wear? - LinguÁgil 2016
Computação ubíqua, o que isso tem a ver Android Wear? - LinguÁgil 2016Ramon Mota
 
Class 01 - Android Study Jams: Android Development for Beginners
Class 01 - Android Study Jams: Android Development for BeginnersClass 01 - Android Study Jams: Android Development for Beginners
Class 01 - Android Study Jams: Android Development for BeginnersJordan Silva
 
google maps api - v1
 google maps api - v1 google maps api - v1
google maps api - v1Lucas Aquiles
 
Notificações no iOS 10
Notificações no iOS 10Notificações no iOS 10
Notificações no iOS 10Rodrigo Borges
 
Android Palestra
Android PalestraAndroid Palestra
Android PalestraRenato
 
Phonegap - Framework Mobile
Phonegap - Framework MobilePhonegap - Framework Mobile
Phonegap - Framework MobileIldyone Martins
 
2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao android2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao androidMessias Batista
 
TDC2016SP - Trilha Mobile
TDC2016SP - Trilha MobileTDC2016SP - Trilha Mobile
TDC2016SP - Trilha Mobiletdc-globalcode
 

Ähnlich wie Android Wear: Expandindo as funcionalidades do seu Android (20)

Android Wear
Android WearAndroid Wear
Android Wear
 
Aprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma práticaAprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma prática
 
Android wear
Android wearAndroid wear
Android wear
 
Desenvolvendo aplicações Adobe AIR para Android
Desenvolvendo aplicações Adobe AIR para AndroidDesenvolvendo aplicações Adobe AIR para Android
Desenvolvendo aplicações Adobe AIR para Android
 
Curso de android
Curso de androidCurso de android
Curso de android
 
Desenvolvimento de Aplicações para Dispositivos Móveis - Android Studio - Par...
Desenvolvimento de Aplicações para Dispositivos Móveis - Android Studio - Par...Desenvolvimento de Aplicações para Dispositivos Móveis - Android Studio - Par...
Desenvolvimento de Aplicações para Dispositivos Móveis - Android Studio - Par...
 
Introdução ao Google TV
Introdução ao Google TVIntrodução ao Google TV
Introdução ao Google TV
 
Computação ubíqua, o que isso tem a ver Android Wear? - LinguÁgil 2016
Computação ubíqua, o que isso tem a ver Android Wear? - LinguÁgil 2016Computação ubíqua, o que isso tem a ver Android Wear? - LinguÁgil 2016
Computação ubíqua, o que isso tem a ver Android Wear? - LinguÁgil 2016
 
Conhecendo o Android Wear
Conhecendo o Android WearConhecendo o Android Wear
Conhecendo o Android Wear
 
Apostilaandroidfatecnormal
ApostilaandroidfatecnormalApostilaandroidfatecnormal
Apostilaandroidfatecnormal
 
Android - Notas de aula
Android - Notas de aulaAndroid - Notas de aula
Android - Notas de aula
 
Aandroid Wear
Aandroid WearAandroid Wear
Aandroid Wear
 
Class 01 - Android Study Jams: Android Development for Beginners
Class 01 - Android Study Jams: Android Development for BeginnersClass 01 - Android Study Jams: Android Development for Beginners
Class 01 - Android Study Jams: Android Development for Beginners
 
Android Aula 3
Android Aula 3Android Aula 3
Android Aula 3
 
google maps api - v1
 google maps api - v1 google maps api - v1
google maps api - v1
 
Notificações no iOS 10
Notificações no iOS 10Notificações no iOS 10
Notificações no iOS 10
 
Android Palestra
Android PalestraAndroid Palestra
Android Palestra
 
Phonegap - Framework Mobile
Phonegap - Framework MobilePhonegap - Framework Mobile
Phonegap - Framework Mobile
 
2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao android2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao android
 
TDC2016SP - Trilha Mobile
TDC2016SP - Trilha MobileTDC2016SP - Trilha Mobile
TDC2016SP - Trilha Mobile
 

Mehr von Heider Lopes

Workshop do Bem: O mundo das APIs
Workshop do Bem: O mundo das APIsWorkshop do Bem: O mundo das APIs
Workshop do Bem: O mundo das APIsHeider Lopes
 
8ºConnecting Knowledge Web ou App
8ºConnecting Knowledge Web ou App8ºConnecting Knowledge Web ou App
8ºConnecting Knowledge Web ou AppHeider Lopes
 
IoTizando com JavaScript
IoTizando com JavaScriptIoTizando com JavaScript
IoTizando com JavaScriptHeider Lopes
 
Descomplicando o Android
Descomplicando o AndroidDescomplicando o Android
Descomplicando o AndroidHeider Lopes
 
1 2 3 - Testando - Automatizando os testes de software
1 2 3 - Testando - Automatizando os testes de software1 2 3 - Testando - Automatizando os testes de software
1 2 3 - Testando - Automatizando os testes de softwareHeider Lopes
 
5º ck o java e o android no iot
5º ck o java e o android no iot5º ck o java e o android no iot
5º ck o java e o android no iotHeider Lopes
 
Arduíno muito prazer
Arduíno muito prazerArduíno muito prazer
Arduíno muito prazerHeider Lopes
 
Programando java independente da ide
Programando java independente da ideProgramando java independente da ide
Programando java independente da ideHeider Lopes
 
Montando ambiente de desenvolvimento android em um tablet
Montando ambiente de desenvolvimento android em um tabletMontando ambiente de desenvolvimento android em um tablet
Montando ambiente de desenvolvimento android em um tabletHeider Lopes
 
Conversando com o android
Conversando com o androidConversando com o android
Conversando com o androidHeider Lopes
 

Mehr von Heider Lopes (13)

Apicon2018.pptx
Apicon2018.pptxApicon2018.pptx
Apicon2018.pptx
 
Workshop do Bem: O mundo das APIs
Workshop do Bem: O mundo das APIsWorkshop do Bem: O mundo das APIs
Workshop do Bem: O mundo das APIs
 
8ºConnecting Knowledge Web ou App
8ºConnecting Knowledge Web ou App8ºConnecting Knowledge Web ou App
8ºConnecting Knowledge Web ou App
 
IoTizando com JavaScript
IoTizando com JavaScriptIoTizando com JavaScript
IoTizando com JavaScript
 
Mobile
MobileMobile
Mobile
 
Tht na web
Tht na webTht na web
Tht na web
 
Descomplicando o Android
Descomplicando o AndroidDescomplicando o Android
Descomplicando o Android
 
1 2 3 - Testando - Automatizando os testes de software
1 2 3 - Testando - Automatizando os testes de software1 2 3 - Testando - Automatizando os testes de software
1 2 3 - Testando - Automatizando os testes de software
 
5º ck o java e o android no iot
5º ck o java e o android no iot5º ck o java e o android no iot
5º ck o java e o android no iot
 
Arduíno muito prazer
Arduíno muito prazerArduíno muito prazer
Arduíno muito prazer
 
Programando java independente da ide
Programando java independente da ideProgramando java independente da ide
Programando java independente da ide
 
Montando ambiente de desenvolvimento android em um tablet
Montando ambiente de desenvolvimento android em um tabletMontando ambiente de desenvolvimento android em um tablet
Montando ambiente de desenvolvimento android em um tablet
 
Conversando com o android
Conversando com o androidConversando com o android
Conversando com o android
 

Android Wear: Expandindo as funcionalidades do seu Android

  • 2. Quem sou? • Desenvolvedor na B2W Digital • Integrante do Things Hacker Team • Palestrante • Mantenedor do site: heiderlopes.com.br
  • 3. Eu nas Redes Sociais twitter.com/heiderlopes linkedin.com/pub/heider-lopes github.com/heiderlopes slideshare.net/heiderlopes
  • 4. Agenda • O que é Android Wear? • O que são dispositivos wareables? • Como funciona? • Formas de integração • Dicas de desenvolvimento • Demos
  • 5. O que é o Android Wear? É uma plataforma desenvolvida pelo Google para dispositivos wareables.
  • 6. O que são wareables? ● Pequenos dispositivos poderosos, usados no corpo ● Fornecem informações úteis quando você mais precisa ● Respostas inteligentes a perguntas faladas ● Ferramentas para ajudar alcançar objetivos fitness
  • 7. O que é o Android Wear? Atualmente utilizado por relógios Samsung Gear Live LG G Watch Moto 360
  • 8. O que é o Android Wear? ZenWatch Sony SmartWatch 3
  • 9. O que é o Android Wear? Pode expandir para outros wearable como sapatos, caneta, correntes, brincos, entre outros.
  • 12. Já temos aplicativos para isso?
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20. Como funciona? Conecta via Bluetooth com dispositivos que rodam Android 4.3 ou superior
  • 23. Compatibilidade São encontradas via Google Play Services e no Android Support Library
  • 26. Exemplo de Notificacao int notificationId = 001; // Build intent for notification content Intent viewIntent = new Intent(this, ViewEventActivity.class); viewIntent.putExtra(EXTRA_EVENT_ID, eventId); PendingIntent viewPendingIntent = PendingIntent.getActivity(this, 0, viewIntent, 0); NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this) .setSmallIcon(R.drawable.ic_event) .setContentTitle(eventTitle) .setContentText(eventLocation) .setContentIntent(viewPendingIntent); // Get an instance of the NotificationManager service NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this); // Build the notification and issues it with notification manager. notificationManager.notify(notificationId, notificationBuilder.build());
  • 28. Exemplo de Action button // Build an intent for an action to view a map Intent mapIntent = new Intent(Intent.ACTION_VIEW); Uri geoUri = Uri.parse("geo:0,0?q=" + Uri.encode(location)); mapIntent.setData(geoUri); PendingIntent mapPendingIntent = PendingIntent.getActivity(this, 0, mapIntent, 0); NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this) .setSmallIcon(R.drawable.ic_event) .setContentTitle(eventTitle) .setContentText(eventLocation) .setContentIntent(viewPendingIntent) .addAction(R.drawable.ic_map, getString(R.string.map), mapPendingIntent);
  • 30. Big View BigTextStyle bigStyle = new NotificationCompat.BigTextStyle(); bigStyle.bigText(eventDescription); NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this) .setSmallIcon(R.drawable.ic_event) .setLargeIcon(BitmapFactory.decodeResource( getResources(), R.drawable.notif_background)) .setContentTitle(eventTitle) .setContentText(eventLocation) .setContentIntent(viewPendingIntent) .addAction(R.drawable.ic_map, getString(R.string.map), mapPendingIntent) .setStyle(bigStyle);
  • 31. Adding Pages to a Notification
  • 32. Pages to a Notification NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this) .setSmallIcon(R.drawable.new_message) .setContentTitle("Page 1") .setContentText("Short message") .setContentIntent(viewPendingIntent); // Create a big text style for the second page BigTextStyle secondPageStyle = new NotificationCompat.BigTextStyle(); secondPageStyle.setBigContentTitle("Page 2") .bigText("A lot of text..."); // Create second page notification Notification secondPageNotification = new NotificationCompat.Builder(this) .setStyle(secondPageStyle) .build(); // Add second page with wearable extender and extend the main notification Notification twoPageNotification = new WearableExtender() .addPage(secondPageNotification) .extend(notificationBuilder) .build(); // Issue the notification notificationManager = NotificationManagerCompat.from(this); notificationManager.notify(notificationId, twoPageNotification);
  • 34. Stacking Notifications final static String GROUP_KEY_EMAILS = "group_key_emails"; // Build the notification, setting the group appropriately Notification notif = new NotificationCompat.Builder(mContext) .setContentTitle("New mail from " + sender1) .setContentText(subject1) .setSmallIcon(R.drawable.new_mail); .setGroup(GROUP_KEY_EMAILS) .build(); // Issue the notification NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this); notificationManager.notify(notificationId1, notif); Notification notif2 = new NotificationCompat.Builder(mContext) .setContentTitle("New mail from " + sender2) .setContentText(subject2) .setSmallIcon(R.drawable.new_mail); .setGroup(GROUP_KEY_EMAILS) .build();
  • 36. <?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="reply_choices"> <item>Sim</item> <item>Não</item> <item>Talvez</item> </string-array> </resources>
  • 37. public static final EXTRA_VOICE_REPLY = "extra_voice_reply"; ... String replyLabel = getResources().getString(R.string.reply_label); String[] replyChoices = getResources().getStringArray(R.array.reply_choices); RemoteInput remoteInput = new RemoteInput.Builder(EXTRA_VOICE_REPLY) .setLabel(replyLabel) .setChoices(replyChoices) .build();
  • 38. // Create an intent for the reply action Intent replyIntent = new Intent(this, ReplyActivity.class); PendingIntent replyPendingIntent = PendingIntent.getActivity(this, 0, replyIntent, PendingIntent.FLAG_UPDATE_CURRENT); // Create the reply action and add the remote input NotificationCompat.Action action = new NotificationCompat.Action.Builder(R.drawable.ic_reply_icon, getString(R.string.label, replyPendingIntent)) .addRemoteInput(remoteInput) .build(); // Build the notification and add the action via WearableExtender Notification notification = new NotificationCompat.Builder(mContext) .setSmallIcon(R.drawable.ic_message) .setContentTitle(getString(R.string.title)) .setContentText(getString(R.string.content)) .extend(new WearableExtender().addAction(action)) .build(); // Issue the notification NotificationManagerCompat notificationManager = NotificationManagerCompat.from(mContext); notificationManager.notify(notificationId, notification);
  • 39. private CharSequence getMessageText(Intent intent) { Bundle remoteInput = RemoteInput.getResultsFromIntent(intent); if (remoteInput != null) { return remoteInput.getCharSequence(EXTRA_VOICE_REPLY); } } return null; }
  • 40. Comando de Voz Podemos recuperar informações e executar tarefas no wearable e no dispositivo portátil emparelhado
  • 41. Envio de Textos Envio de textos, mensagens instantâneas e e-mails ("enviar Heider Lopes mensagem Testando o Android Wear", e em seguida, falar a sua mensagem).
  • 42. Obter respostas Obter respostas a essas questões importantes da vida, como: "será que vai chover hoje à tarde?"
  • 43. Obter direções Obter direções por exemplo: "como chegar na Rua Funchal?". São disparados Cards no Weareable e vibra na hora de fazer uma curva
  • 44. Criar lembretes Criar lembrate para um determinado período de tempo ou “Quando”. O Android Wear detecta que você está em um local específico e te ajuda a lembrar o que tem a fazer. ("lembre-me de enviar e-mail quando chegar no trabalho.")
  • 45. Criar notas Tomar notas usando o Google Keep ("tomar nota, terminar a apresentação de Android Wear para o GDG")
  • 46. Abrir aplicativo no Dispostivo Pareado Abrir aplicativo no Smartphone ou Tablet ("Abrir Facebook")
  • 48. APIS Não Suportadas • android.webkit • android.print • android.appwidget • android.hardware.usb
  • 50. Debugando pelo Bluetooth Os passos podem ser acessados através do site do desenvolvedor: https://developer.android.com/training/weara bles/apps/bt-debugging.html
  • 54. Configurando a sessão de Debug adb -s localhost:4444 <command> adb -e logcat adb -e shell lConecte seu mobile com a máquina através da USB adb forward tcp:4444 localabstract:/adb-hub; adb connect localhost:4444
  • 56. Dicas de Desenvolvimento Manter questionando como você usaria um relógio tradicional.
  • 57. Dicas de Desenvolvimento Portanto, uma grande parte da concepção de um aplicativo bem sucedido é ser fácil de usar.
  • 58. Dicas de Desenvolvimento Suas cartas de notificação só deve exibir uma única peça de informação.
  • 59. Dicas de Desenvolvimento Se você precisa de mais informações, use páginas adicionais ao invés de tentar espremer mais informações em um único cartão.
  • 60. Manter texto a um mínimo Seu cartão de notificação deve conter apenas palavras e frases curtas, e não frases completas.
  • 61. Manter texto a um mínimo Um truque para manter o texto a um mínimo é comunicar cada pedaço de informação através de um ícone e valor.
  • 62. Fazer uso de imagens de fundo A utilização de imagens de fundo serve para fornecer formas diferentes de notificações para seu aplicativo.
  • 63. Obrigado pela participação!!! Confira mais novidade no QRCode acima