Issuu on Google+

ICS e Jelly Beans: A Revolução do Android. www.globalcode.com.br

www.stillrocker.com


Quem Sou • Ricardo da Silva Ogliari • Instrutor GlobalCode • http://bit.ly/globalcode-na-campusparty - Sorteio de uma vaga no AND1Online

www.globalcode.com.br

www.stillrocker.com


Quem Sou

www.globalcode.com.br

www.stillrocker.com


Quem Sou • Mobile Magazine e Espírito Livre • Quase 200 publicações..

www.globalcode.com.br

www.stillrocker.com


Porque Android 4.0 • Uso crescente..

www.globalcode.com.br

www.stillrocker.com


Interactive Screen Saver • Protetor de Tela Animado; • Útil para chamar atenção para seu aplicativo; • Entretenimento • Exemplo: http://goo.gl/Pxp36

www.globalcode.com.br

www.stillrocker.com


Interactive Screen Saver • Arquitetura – Subclasse de android.service.dreams.DreamSer vice – Acesso a uma simples Activity com seu ciclo de vida

www.globalcode.com.br

www.stillrocker.com


Interactive Screen Saver • Sobrescrever – onAttachedToWindow – onDreamingStarted – OnDreamingStopped – onDetachedFromWindow

www.globalcode.com.br

www.stillrocker.com


Interactive Screen Saver • Métodos importantes – setContentView – setInteractive(boolean): por padrão, o toque na tela fecha o screen saver – setFullScreen – setScreenBright(boolean): por padrão, true. www.globalcode.com.br

www.stillrocker.com


AndroidManifest.xml <application ... > <service android:name=".BouncerDaydream" android:exported="true" android:label="DayDream"> <intent-filter> <action android:name= "android.service.dreams.DreamService" /> <category android:name= "android.intent.category.DEFAULT" /> </intent-filter> <meta-data android:name="android.service.dream" android:resource="@xml/dream_info" /> </service> </application> www.globalcode.com.br

www.stillrocker.com


dream_info.xml <?xml version="1.0" encoding="utf-8"?> <dream xmlns:android= "http://schemas.android.com/apk/res/android" android:settingsActivity= "com.app.ExampleDreamSettingsActivity" />

www.globalcode.com.br

www.stillrocker.com


Interactive Screen Saver • Dicas – Não use Screen Saver muito pesadas, SO pode matá-las; – Respeite o Lock Screen, fotos podem ser embaraçosas; – Cuidado com o brilho

www.globalcode.com.br

www.stillrocker.com


Interactive Screen Saver • Dicas – Barra de Status: nem sempre o usuário deseja full screen; – Mais de um Screen Saver: diferenças grandes, faça mais de um.

www.globalcode.com.br

www.stillrocker.com


Calendar API • Unifica o acesso aos dados de calendários; • Permissão no manifesto; • CalendarContract;

www.globalcode.com.br

www.stillrocker.com


Calendar API mCursor = getContentResolver().query( CalendarContract.Events.CONTENT_URI, new String[] {CalendarContract.Events.TITLE, CalendarContract.Events.DTSTART }, null, null, null); title = mCursor.getString(0); start = mCursor.getLong(1); <uses-permission android:name="android.permission.READ_CALENDAR"/> www.globalcode.com.br

www.stillrocker.com


App Widgets • Também na KeyGuard

www.globalcode.com.br

www.stillrocker.com


App Widgets â&#x20AC;˘ Provider Info <?xml version="1.0" encoding="utf-8"?> <appwidget-provider xmlns:android="..." ... android:initialLayout="@layout/layout_widget" android:widgetCategory="keyguard" android:initialKeyguardLayout="@layout/layoutwgt" />

www.globalcode.com.br

www.stillrocker.com


App Widgets • Margens Automáticas; • Arquivos distintos de dimensão.

r e s /v a lu e s /d im e n s .x m l : <dimen name="widget_margin">8dp</dimen>

r e s /v a lu e s - v 1 4 /d im e n s .x m l : <dimen name="widget_margin">0dp</dimen> www.globalcode.com.br

www.stillrocker.com


App Widgets • Métodos: – onAppWidgetOptionsChanged: – OPTION_APPWIDGET_MIN_WIDTH; – OPTION_APPWIDGET_MIN_HEIGHT; – OPTION_APPWIDGET_MAX_WIDTH; – OPTION_APPWIDGET_MAX_HEIGHT

www.globalcode.com.br

www.stillrocker.com


Notifications • Versão pré e pós 4.1:

www.globalcode.com.br

www.stillrocker.com


Notifications • • • • • • •

1: Título do conteúdo; 2: Ícone grande; 3: Texto do conteúdo; 4: Informações de conteúdo; 5: Ícone pequeno; 6: Data da notificação Normal View www.globalcode.com.br

www.stillrocker.com


Notifications • Big View • 7: Área de detalhe

www.globalcode.com.br

www.stillrocker.com


Notifications • Big Picture Style: mostra uma imagem acima de 256 dp; • Big Text Style: mostra um grande bloco de texto; • Inbox Style: mostra linhas de texto;

www.globalcode.com.br

www.stillrocker.com


Notifications – Criação – Pré 4.1 NotificationManager nManager = (NotificationManager) getSystemService(ns); //Instanciando a notificação int icone = R.drawable.img_ic_notificacao; CharSequence tickerText = "Notificando!"; long quando = System.currentTimeMillis(); Notification notification = new Notification(icone, tickerText, quando); www.globalcode.com.br

www.stillrocker.com


Notifications – Criação – Pré 4.1 Context ctx = getApplicationContext(); CharSequence titulo = "Notificação"; CharSequence texto = ”Ola Status Bar !!"; Intent i = new Intent(this, ActivityDestino.class); PendingIntent pi = PendingIntent.getActivity(this, 0, i, 0); notification.setLatestEventInfo(ctx, titulo, texto, pi);

www.globalcode.com.br

www.stillrocker.com


Notifications – Criação – Pós 4.1 NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this) .setSmallIcon(R.drawable.notification_icon) .setContentTitle("My notification") .setContentText("Hello World!"); ); NotificationManager mm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); mNotificationManager.notify(mId, mBuilder.build()); www.globalcode.com.br

www.stillrocker.com


Notifications – Criação – Pós 4.1 NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this) .setSmallIcon().setContentTitle("Event tracker"); NotificationCompat.InboxStyle is = new NotificationCompat.InboxStyle(); String[] events = new String[6]; inboxStyle.setBigContentTitle("My Title:"); ... for (int i=0; i < events.length; i++) { inboxStyle.addLine(events[i]); } mBuilder.setStyle(inBoxStyle); www.globalcode.com.br

www.stillrocker.com


Notifications – Criação – Pós 4.1 NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this) .setSmallIcon().setContentTitle("Event tracker"); … mBuilder.setProgress(100, incr, false); mNotifyManager.notify(0, mBuilder.build());

www.globalcode.com.br

www.stillrocker.com


Notifications – Criação – Pós 4.1 NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this) .setSmallIcon().setContentTitle("Event tracker"); … mBuilder.setProgress(0, 0, true); mNotifyManager.notify(0, mBuilder.build());

www.globalcode.com.br

www.stillrocker.com


Notifications – Criação – Pós 4.1 NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this) .setSmallIcon().setContentTitle("Event tracker"); … mBuilder.setProgress(0, 0, true); mNotifyManager.notify(0, mBuilder.build());

www.globalcode.com.br

www.stillrocker.com


NFC – Android Beam

* Exemplo: https://www.youtube.com/watch?v=XBIh-TUv * Iniciar aplicação com a leitura de uma Tag NFC específica; <intent-filter> <action android:name="android.nfc.action.NDEF_DISCOVERED"/> <category android:name="android.intent.category.DEFAULT"/> <data android:mimeType="application/vnd.com.ex.android.beam"/> </intent-filter> www.globalcode.com.br

www.stillrocker.com


Face Detect mCamera.setFaceDetectionListener(new MyFaceDetectionListener()); class MyFaceDetectionListener implements Camera.FaceDetectionListener { @Override public void onFaceDetection(Face[] faces, Camera camera) { if (faces.length > 0){ Log.d("Face detectada", "Quantidade de faces: "+ faces.length + " Face 1 Location X: " + faces[0].rect.centerX() + "Y: " + faces[0].rect.centerY() ); } } } www.globalcode.com.br

www.stillrocker.com


União das versões * Honeycomb, versão 3.0, lançada em início de 2011, divisão. SMARTPHONE != TABLET * Android 4 (ICS) unificou..

www.globalcode.com.br

www.stillrocker.com


ADK – Android Development Kit - Tablueiro ADK: http://goo.gl/6bcHt - Robô ADK: http://goo.gl/zeUPJ - Piano Fantasma: http://goo.gl/4gMe4

www.globalcode.com.br

www.stillrocker.com


OBRIGADOOOOOOOOOOO! • • • • •

Twitter: @mobilidadetudo Instagram: mobilidadetudo Blog: www.mobilidadetudo.com Email: rogliariping@gmail.com http://bit.ly/globalcode-na-campusparty - Sorteio de uma vaga no AND1Online www.globalcode.com.br

www.stillrocker.com


ICS e Jelly Beans: A Revolução do Android