SlideShare une entreprise Scribd logo
1  sur  21
The Ultimate Android Lock Screen Alberto Fonseca Founder -
Agenda What is GOTO? Feature Overview Demo Lessons Learned Q&A Copyright © 2010 InnoWeb Tech, LLC
What is GOTO? Copyright © 2010 InnoWeb Tech, LLC Android 1.5
What is GOTO? Copyright © 2010 InnoWeb Tech, LLC Android 2.0
What is GOTO? Copyright © 2010 InnoWeb Tech, LLC GOTO UI
Features Notification Previews App shortcuts Weather Copyright © 2010 InnoWeb Tech, LLC
Features Notification Previews Copyright © 2010 InnoWeb Tech, LLC
Features Notification Previews App shortcuts Copyright © 2010 InnoWeb Tech, LLC
Features Notification Previews App shortcuts Weather Copyright © 2010 InnoWeb Tech, LLC
DEMO Copyright © 2010 InnoWeb Tech, LLC
Lessons Learned Unsupported API’s – Don’t try this at home Supporting Android 1.5 – 2.2 Testing on real hardware Copyright © 2010 InnoWeb Tech, LLC
Lessons Learned Unsupported API’s – Don’t try this at home Maintenance and internal API changes Device implementations not consistent Very time consuming Copyright © 2010 InnoWeb Tech, LLC
Lessons Learned Unsupported API’s – Don’t try this at home Supporting Android 1.5 – 2.2 Copyright © 2010 InnoWeb Tech, LLC http://developer.android.com/resources/dashboard/platform-versions.html Data collected during two weeks ending on August 2, 2010
Lessons Learned Unsupported API’s – Don’t try this at home Supporting Android 1.5 – 2.2 Android Manifest MinSDK version 3 TargetSDK version 8 Reflection Initialization on demand holder pattern Copyright © 2010 InnoWeb Tech, LLC
GoogleAccountsWrapper public abstract classGoogleAccountsWrapper { public staticGoogleAccountsWrappergetInstance() { if (Integer.parseInt(Build.VERSION.SDK) < 5) { returnPreEclair.Holder.instance; } else { returnEclairPlus.Holder.instance; } } public abstract voidinitGMailAccount(Activity activity); //… Copyright © 2010 InnoWeb Tech, LLC
private static class PreEclair extends GoogleAccountsWrapper { private static class Holder { 	private static finalPreEclair instance = new PreEclair(); } /** * Retrieve GMail account info and save it in NotificationInfo * Note: We are relying on an older version of* GoogleLoginServiceHelper linked here via the framework.jar * library and calling it's getAccount() method. */ @Override public voidinitGMailAccount(Activity activity)  { com.google.android.googlelogin.GoogleLoginServiceHelper.getAccount(activity, Goto.REQUEST_GET_ACCOUNT, true); } } Copyright © 2010 InnoWeb Tech, LLC
private static classEclairPlus extends GoogleAccountsWrapper { private static class Holder { 	private static finalEclairPlusinstance = newEclairPlus(); } @Override public voidinitGMailAccount(Activity context)  { AccountManageraccountManager = AccountManager.get(context); Account[] accounts = accountManager.getAccountsByType("com.google"); if (accounts.length > 0) { NotificationInfo.googleAccount= accounts[0].name; } } } } Copyright © 2010 InnoWeb Tech, LLC
// Initialize GMail account info GoogleAccountsWrappergoogleAccounts = GoogleAccountsWrapper.getInstance(); googleAccounts.initGMailAccount(this); Copyright © 2010 InnoWeb Tech, LLC
Lessons Learned Unsupported API’s – Don’t try this at home Supporting Android 1.5 – 2.2 Testing on real hardware Networking with other Android users/devs DeviceAnywhereservice http://www.deviceanywhere.com Copyright © 2010 InnoWeb Tech, LLC
Questions? Copyright © 2010 InnoWeb Tech, LLC
Contact Alberto FonsecaAvailable for consulting/project managementE-mail: afonseca@innowebtech.comBlog: www.innowebtech.com/blogTwitter: @innowebtech GOTOAvailable in the Android MarketplaceWeb: www.gotoandroidapp.com Copyright © 2010 InnoWeb Tech, LLC

Contenu connexe

Similaire à GOTO - The Ultimate Android Lock Screen

YouTube APIs presentation at Facultad de Ciencias, Universidad Nacional Autón...
YouTube APIs presentation at Facultad de Ciencias, Universidad Nacional Autón...YouTube APIs presentation at Facultad de Ciencias, Universidad Nacional Autón...
YouTube APIs presentation at Facultad de Ciencias, Universidad Nacional Autón...Jarek Wilkiewicz
 
Встреча Google Post IO ( Владимир Иванов, Катерина Заворотченко и Сергей Комлач)
Встреча Google Post IO ( Владимир Иванов, Катерина Заворотченко и Сергей Комлач)Встреча Google Post IO ( Владимир Иванов, Катерина Заворотченко и Сергей Комлач)
Встреча Google Post IO ( Владимир Иванов, Катерина Заворотченко и Сергей Комлач)Alina Vilk
 
JMP103 : Extending Your App Arsenal With OpenSocial
JMP103 : Extending Your App Arsenal With OpenSocialJMP103 : Extending Your App Arsenal With OpenSocial
JMP103 : Extending Your App Arsenal With OpenSocialRyan Baxter
 
IBM Connect 2014 - JMP103: Extending Your Application Arsenal With OpenSocial
IBM Connect 2014 - JMP103: Extending Your Application Arsenal With OpenSocialIBM Connect 2014 - JMP103: Extending Your Application Arsenal With OpenSocial
IBM Connect 2014 - JMP103: Extending Your Application Arsenal With OpenSocialIBM Connections Developers
 
Testing android apps with espresso
Testing android apps with espressoTesting android apps with espresso
Testing android apps with espressoÉdipo Souza
 
Building Video Applications with YouTube APIs
Building Video Applications with YouTube APIsBuilding Video Applications with YouTube APIs
Building Video Applications with YouTube APIsJarek Wilkiewicz
 
What's New with Perfecto? - May 2017
What's New with Perfecto? - May 2017What's New with Perfecto? - May 2017
What's New with Perfecto? - May 2017Lizzy Guido (she/her)
 
Lecture 12 - Maps, AR_VR_aaaaHardware.pptx
Lecture 12 - Maps, AR_VR_aaaaHardware.pptxLecture 12 - Maps, AR_VR_aaaaHardware.pptx
Lecture 12 - Maps, AR_VR_aaaaHardware.pptxNgLQun
 
Android - Open Source Bridge 2011
Android - Open Source Bridge 2011Android - Open Source Bridge 2011
Android - Open Source Bridge 2011sullis
 
The Google App Engine Oil Framework
The Google App Engine Oil FrameworkThe Google App Engine Oil Framework
The Google App Engine Oil FrameworkEric ShangKuan
 
How to develop nice portlet with Juzu framework
How to develop nice portlet with Juzu frameworkHow to develop nice portlet with Juzu framework
How to develop nice portlet with Juzu frameworkNguyễn Tuyến
 
Joget Workflow v6 Training Slides - 18 - Integrating with External System
Joget Workflow v6 Training Slides - 18 - Integrating with External SystemJoget Workflow v6 Training Slides - 18 - Integrating with External System
Joget Workflow v6 Training Slides - 18 - Integrating with External SystemJoget Workflow
 
How to add your own OpenSocial Gadgets to IBM Connections
How to add your own OpenSocial Gadgets to IBM ConnectionsHow to add your own OpenSocial Gadgets to IBM Connections
How to add your own OpenSocial Gadgets to IBM ConnectionsIBM Connections Developers
 
Google analytics
Google analyticsGoogle analytics
Google analyticsSean Tsai
 
Android 5.0 internals and inferiority complex droidcon.de 2015
Android 5.0 internals and inferiority complex droidcon.de 2015Android 5.0 internals and inferiority complex droidcon.de 2015
Android 5.0 internals and inferiority complex droidcon.de 2015Aleksander Piotrowski
 
Simple stock market analysis
Simple stock market analysisSimple stock market analysis
Simple stock market analysislynneblue
 
A gently introduction to AngularJS
A gently introduction to AngularJSA gently introduction to AngularJS
A gently introduction to AngularJSGregor Woiwode
 

Similaire à GOTO - The Ultimate Android Lock Screen (20)

YouTube APIs presentation at Facultad de Ciencias, Universidad Nacional Autón...
YouTube APIs presentation at Facultad de Ciencias, Universidad Nacional Autón...YouTube APIs presentation at Facultad de Ciencias, Universidad Nacional Autón...
YouTube APIs presentation at Facultad de Ciencias, Universidad Nacional Autón...
 
Встреча Google Post IO ( Владимир Иванов, Катерина Заворотченко и Сергей Комлач)
Встреча Google Post IO ( Владимир Иванов, Катерина Заворотченко и Сергей Комлач)Встреча Google Post IO ( Владимир Иванов, Катерина Заворотченко и Сергей Комлач)
Встреча Google Post IO ( Владимир Иванов, Катерина Заворотченко и Сергей Комлач)
 
JMP103 : Extending Your App Arsenal With OpenSocial
JMP103 : Extending Your App Arsenal With OpenSocialJMP103 : Extending Your App Arsenal With OpenSocial
JMP103 : Extending Your App Arsenal With OpenSocial
 
IBM Connect 2014 - JMP103: Extending Your Application Arsenal With OpenSocial
IBM Connect 2014 - JMP103: Extending Your Application Arsenal With OpenSocialIBM Connect 2014 - JMP103: Extending Your Application Arsenal With OpenSocial
IBM Connect 2014 - JMP103: Extending Your Application Arsenal With OpenSocial
 
Testing android apps with espresso
Testing android apps with espressoTesting android apps with espresso
Testing android apps with espresso
 
Building Video Applications with YouTube APIs
Building Video Applications with YouTube APIsBuilding Video Applications with YouTube APIs
Building Video Applications with YouTube APIs
 
Sst hackathon express
Sst hackathon expressSst hackathon express
Sst hackathon express
 
What's New with Perfecto? - May 2017
What's New with Perfecto? - May 2017What's New with Perfecto? - May 2017
What's New with Perfecto? - May 2017
 
Lecture 12 - Maps, AR_VR_aaaaHardware.pptx
Lecture 12 - Maps, AR_VR_aaaaHardware.pptxLecture 12 - Maps, AR_VR_aaaaHardware.pptx
Lecture 12 - Maps, AR_VR_aaaaHardware.pptx
 
Android - Open Source Bridge 2011
Android - Open Source Bridge 2011Android - Open Source Bridge 2011
Android - Open Source Bridge 2011
 
The Google App Engine Oil Framework
The Google App Engine Oil FrameworkThe Google App Engine Oil Framework
The Google App Engine Oil Framework
 
How to develop nice portlet with Juzu framework
How to develop nice portlet with Juzu frameworkHow to develop nice portlet with Juzu framework
How to develop nice portlet with Juzu framework
 
Joget Workflow v6 Training Slides - 18 - Integrating with External System
Joget Workflow v6 Training Slides - 18 - Integrating with External SystemJoget Workflow v6 Training Slides - 18 - Integrating with External System
Joget Workflow v6 Training Slides - 18 - Integrating with External System
 
How to add your own OpenSocial Gadgets to IBM Connections
How to add your own OpenSocial Gadgets to IBM ConnectionsHow to add your own OpenSocial Gadgets to IBM Connections
How to add your own OpenSocial Gadgets to IBM Connections
 
Multi-OS Engine Technology Overview
Multi-OS Engine Technology OverviewMulti-OS Engine Technology Overview
Multi-OS Engine Technology Overview
 
Google analytics
Google analyticsGoogle analytics
Google analytics
 
Android 5.0 internals and inferiority complex droidcon.de 2015
Android 5.0 internals and inferiority complex droidcon.de 2015Android 5.0 internals and inferiority complex droidcon.de 2015
Android 5.0 internals and inferiority complex droidcon.de 2015
 
Study Jam Session 2
Study Jam Session 2Study Jam Session 2
Study Jam Session 2
 
Simple stock market analysis
Simple stock market analysisSimple stock market analysis
Simple stock market analysis
 
A gently introduction to AngularJS
A gently introduction to AngularJSA gently introduction to AngularJS
A gently introduction to AngularJS
 

Dernier

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...apidays
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbuapidays
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusZilliz
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 

Dernier (20)

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 

GOTO - The Ultimate Android Lock Screen

  • 1. The Ultimate Android Lock Screen Alberto Fonseca Founder -
  • 2. Agenda What is GOTO? Feature Overview Demo Lessons Learned Q&A Copyright © 2010 InnoWeb Tech, LLC
  • 3. What is GOTO? Copyright © 2010 InnoWeb Tech, LLC Android 1.5
  • 4. What is GOTO? Copyright © 2010 InnoWeb Tech, LLC Android 2.0
  • 5. What is GOTO? Copyright © 2010 InnoWeb Tech, LLC GOTO UI
  • 6. Features Notification Previews App shortcuts Weather Copyright © 2010 InnoWeb Tech, LLC
  • 7. Features Notification Previews Copyright © 2010 InnoWeb Tech, LLC
  • 8. Features Notification Previews App shortcuts Copyright © 2010 InnoWeb Tech, LLC
  • 9. Features Notification Previews App shortcuts Weather Copyright © 2010 InnoWeb Tech, LLC
  • 10. DEMO Copyright © 2010 InnoWeb Tech, LLC
  • 11. Lessons Learned Unsupported API’s – Don’t try this at home Supporting Android 1.5 – 2.2 Testing on real hardware Copyright © 2010 InnoWeb Tech, LLC
  • 12. Lessons Learned Unsupported API’s – Don’t try this at home Maintenance and internal API changes Device implementations not consistent Very time consuming Copyright © 2010 InnoWeb Tech, LLC
  • 13. Lessons Learned Unsupported API’s – Don’t try this at home Supporting Android 1.5 – 2.2 Copyright © 2010 InnoWeb Tech, LLC http://developer.android.com/resources/dashboard/platform-versions.html Data collected during two weeks ending on August 2, 2010
  • 14. Lessons Learned Unsupported API’s – Don’t try this at home Supporting Android 1.5 – 2.2 Android Manifest MinSDK version 3 TargetSDK version 8 Reflection Initialization on demand holder pattern Copyright © 2010 InnoWeb Tech, LLC
  • 15. GoogleAccountsWrapper public abstract classGoogleAccountsWrapper { public staticGoogleAccountsWrappergetInstance() { if (Integer.parseInt(Build.VERSION.SDK) < 5) { returnPreEclair.Holder.instance; } else { returnEclairPlus.Holder.instance; } } public abstract voidinitGMailAccount(Activity activity); //… Copyright © 2010 InnoWeb Tech, LLC
  • 16. private static class PreEclair extends GoogleAccountsWrapper { private static class Holder { private static finalPreEclair instance = new PreEclair(); } /** * Retrieve GMail account info and save it in NotificationInfo * Note: We are relying on an older version of* GoogleLoginServiceHelper linked here via the framework.jar * library and calling it's getAccount() method. */ @Override public voidinitGMailAccount(Activity activity) { com.google.android.googlelogin.GoogleLoginServiceHelper.getAccount(activity, Goto.REQUEST_GET_ACCOUNT, true); } } Copyright © 2010 InnoWeb Tech, LLC
  • 17. private static classEclairPlus extends GoogleAccountsWrapper { private static class Holder { private static finalEclairPlusinstance = newEclairPlus(); } @Override public voidinitGMailAccount(Activity context) { AccountManageraccountManager = AccountManager.get(context); Account[] accounts = accountManager.getAccountsByType("com.google"); if (accounts.length > 0) { NotificationInfo.googleAccount= accounts[0].name; } } } } Copyright © 2010 InnoWeb Tech, LLC
  • 18. // Initialize GMail account info GoogleAccountsWrappergoogleAccounts = GoogleAccountsWrapper.getInstance(); googleAccounts.initGMailAccount(this); Copyright © 2010 InnoWeb Tech, LLC
  • 19. Lessons Learned Unsupported API’s – Don’t try this at home Supporting Android 1.5 – 2.2 Testing on real hardware Networking with other Android users/devs DeviceAnywhereservice http://www.deviceanywhere.com Copyright © 2010 InnoWeb Tech, LLC
  • 20. Questions? Copyright © 2010 InnoWeb Tech, LLC
  • 21. Contact Alberto FonsecaAvailable for consulting/project managementE-mail: afonseca@innowebtech.comBlog: www.innowebtech.com/blogTwitter: @innowebtech GOTOAvailable in the Android MarketplaceWeb: www.gotoandroidapp.com Copyright © 2010 InnoWeb Tech, LLC