External Services. CSE 5236: Mobile Application Development Course Coordinator: Dr. Rajiv Ramnath Instructor: Adam C. Champion
|
|
- Joan Patrick
- 6 years ago
- Views:
Transcription
1 External Services CSE 5236: Mobile Application Development Course Coordinator: Dr. Rajiv Ramnath Instructor: Adam C. Champion 1
2 External Services Viewing websites Location- and map-based functionality REST-based Web services invocation 2
3 Invoking Browser App Java // HelpFragment.java private void launchbrowser( String url) { Uri theuri = Uri.parse(url); Intent LaunchBrowserIntent = new Intent(Intent.ACTION_VIEW, theuri); startactivity( LaunchBrowserIntent); Kotlin // HelpFragment.kt private fun launchbrowser( url: String) { val theuri = Uri.parse(url) val LaunchBrowserIntent = Intent(Intent.ACTION_VIEW, theuri) startactivity( LaunchBrowserIntent) URL: Note: Activity stacking due to re-launch of browser on mobile page 3
4 Embedded WebView - Layout <?xml version="1.0" encoding="utf-8"?> <ScrollView...> <LinearLayout......> <WebView android:id="@+id/helpwithwebview" android:layout_width="match_parent" android:layout_height="200dip" android:layout_weight="1.0"/> <Button... android:text="exit"/> </LinearLayout> </ScrollView> 4
5 Embedded WebView: Java // HelpWebViewFragment.java public View oncreateview(...) { View v = inflater.inflate(r.layout.fragment_help_webview,...); WebView helpinwebview = (WebView) v.findviewbyid(r.id.helpwithwebview); mprogressbar = (ProgressBar) v.findviewbyid(r.id.webviewprogress); mprogressbar.setmax(100); View buttonexit = v.findviewbyid(r.id.button_exit); buttonexit.setonclicklistener(this); Bundle extras = getactivity().getintent().getextras(); if (extras!= null) { murl = extras.getstring(arg_uri); /*... */ //... helpinwebview.setwebviewclient(new WebViewClient() { public boolean shouldoverrideurlloading(...) { return false; ); helpinwebview.setwebchromeclient(new WebChromeClient() { public void onprogresschanged(webview webview, int progress) { if (progress == 100) { mprogressbar.setvisibility(view.gone); else { mprogressbar.setvisibility(view.visible); mprogressbar.setprogress(progress); ); helpinwebview.loadurl(murl); return v; 5
6 Embedded WebView: Kotlin // HelpWebViewFragment.kt override fun oncreateview(... ): View? { val v = inflater.inflate(r.layout.fragment_help_webview,...) val helpinwebview = v.findviewbyid<webview>(r.id.helpwithwebview) mprogressbar = v.findviewbyid<progressbar>(r.id.webviewprogress) mprogressbar.apply { max = 100 val buttonexit = v.findviewbyid<button>(r.id.button_exit) buttonexit.setonclicklistener(this) val extras = activity.intent.extras if (extras!= null) { murl = extras.getstring(arg_uri) WebView.setWebContentsDebuggingEnabled(true) helpinwebview.settings.javascriptenabled = true helpinwebview.webviewclient = object : WebViewClient() { override fun shouldoverrideurlloading(... ): Boolean { return false helpinwebview.webchromeclient = object : WebChromeClient() { override fun onprogresschanged(... ) { if (progress == 100) { mprogressbar.visibility = View.GONE else { mprogressbar.visibility = View.VISIBLE mprogressbar.progress = progress helpinwebview.loadurl(murl) return v 6
7 Location-Based Applications These mix-and-match the following actions: Opening a map Invoking a geocoding service on a point of interest Navigating the map to a position or make a mapbased calculation Determining the user s geolocation from the device (latitude, longitude) 7
8 Additional Requirements for Maps Use built-in GoogleMap with a FragmentActivity Link against Google APIs for Android (rather than standard Android SDK) Declare the use of the Google map package: <uses-library android:name="com.google.android.maps /> Request the appropriate permissions, e.g.: <uses-permission android:name="android.permission.internet"/> <uses-permission android:name="android.permission.access_network_state"/> <uses-permission android:name="android.permission.access_coarse_location"/> <uses-permission android:name="android.permission.access_fine_location"/> <uses-permission android:name="android.permission.write_external_storage"/> <uses-permission android:name="com.google.android.providers.gsf.permission.read_gservices /> Request a Map API key Goes in AndroidManifest.xml as <meta-data android:name="com.google.android.maps.v2.api_key android:value=... /> See Need OpenGL ES v2: <uses-feature android:glesversion="0x android:required="true"/>
9 Map Fragment Layout <fragment xmlns:android=" xmlns:tools=" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".mapsactivity" android:name="com.google.android.gms.maps.supportmapfragment"/> Google Maps uses Fragments UI Fragment needs to be loaded dynamically 9
10 Map Fragment Code: Java (1) // MapsFragment.java public class MapsFragment extends SupportMapFragment implements OnMapReadyCallback { private GoogleMap mmap; private GoogleApiClient mapiclient; private static final String[] LOCATION_PERMISSIONS = new String[] { Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION ; private FusedLocationProviderClient mfusedlocationproviderclient; private Location mlocation; private LatLng mdefaultlocation; private static final int REQUEST_LOCATION_PERMISSIONS = 0; private boolean mlocationpermissiongranted = false;... // MapsActivity.java just uses a SingleFragmentActivity 10
11 Map Fragment Code: Java (2) // MapsFragment.java (continued) public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); sethasoptionsmenu(true); mapiclient = new GoogleApiClient.Builder(getActivity()).addApi(LocationServices.API).addConnectionCallbacks(new GoogleApiClient.ConnectionCallbacks() { public void onconnected(@nullable Bundle bundle) { getactivity().invalidateoptionsmenu(); public void onconnectionsuspended(int i) {... ).build(); getmapasync(this); public void onresume() { super.onresume(); setupeula(); findlocation(); 11
12 Map Fragment Code: Java (3) // MapsFragment.java (continued) public void onstart() { //... getactivity().invalidateoptionsmenu(); mapiclient.connect(); public void onstop() { //... mapiclient.disconnect(); private void findlocation() { updatelocationui(); if (haslocationpermission()) { mfusedlocationproviderclient = LocationServices.getFusedLocationProviderClient(getActivity()); mdefaultlocation = new LatLng(40.0, -83.0); LocationRequest locationrequest = LocationRequest.create(); locationrequest.setpriority(locationrequest.priority_high_accuracy); locationrequest.setnumupdates(1); locationrequest.setinterval(0); FusedLocationProviderClient locationprovider = LocationServices.getFusedLocationProviderClient(getActivity()); Task locationresult = locationprovider.getlastlocation(); locationresult.addoncompletelistener(getactivity(), new OnCompleteListener() { public void oncomplete(@nonnull Task task) { if (task.issuccessful()) { mlocation = (Location) task.getresult(); mmap.movecamera(cameraupdatefactory.newlatlngzoom(new LatLng(mLocation.getLatitude(), mlocation.getlongitude()), 16)); 12 else { /* Disable Location */ ); // Else request permissions, end of method.
13 Map Fragment Code: Java (4) // MapsFragment.java (continued) private void setupeula() { msettings = getactivity().getsharedpreferences(getstring(r.string.prefs), 0); boolean iseulaaccepted = msettings.getboolean(getstring(r.string.eula_accepted_key), false); if (!iseulaaccepted) { DialogFragment euladialogfragment = new EulaDialogFragment(); euladialogfragment.show(getactivity().getsupportfragmentmanager(), "eula"); public void oncreateoptionsmenu(menu menu, MenuInflater inflater) { //... inflater.inflate(r.menu.maps_menu, menu); public boolean onoptionsitemselected(menuitem item) { switch (item.getitemid()) { case R.id.menu_showcurrentlocation: Log.d(TAG, "Showing current location"); if (haslocationpermission()) { findlocation(); else { /* Request permissions */ break; return true; 13
14 Map Fragment Code: Java (5) // MapsFragment.java (continued) public void onrequestpermissionsresult(...) { mlocationpermissiongranted = false; switch (requestcode) { case REQUEST_LOCATION_PERMISSIONS: { // If request is cancelled, the result arrays are empty. if (grantresults.length > 0 && grantresults[0] == PackageManager.PERMISSION_GRANTED) { mlocationpermissiongranted = true; updatelocationui(); private void updatelocationui() { if (mmap == null) { return; try { if (mlocationpermissiongranted) { /* Enable location */ else { /* Disable location, request permissions */ catch (SecurityException e) { /*... */ public void onmapready(googlemap googlemap) { mmap = googlemap; mmap.addmarker(new MarkerOptions().position(new LatLng(40.0, -83.0)).title("Ohio State University")); mmap.setmylocationenabled(true); mmap.getuisettings().setmylocationbuttonenabled(true); /*... */ private boolean haslocationpermission() { /*... */ 14
15 Map Fragment Code: Kotlin (1) // MapsFragment.kt class MapsFragment : SupportMapFragment(), OnMapReadyCallback { private lateinit var mmap: GoogleMap private lateinit var mapiclient: GoogleApiClient private lateinit var mfusedlocationproviderclient: FusedLocationProviderClient private var mlocation: Location? = null private var mdefaultlocation: LatLng? = null private var mlocationpermissiongranted = false private var mmapready = false companion object { private val LOCATION_PERMISSIONS = arrayof(manifest.permission.access_fine_location, Manifest.permission.ACCESS_COARSE_LOCATION) private val REQUEST_LOCATION_PERMISSIONS = 0 15
16 Map Fragment Code: Kotlin (2) // MapsFragment.kt (continued) override fun oncreate(savedinstancestate: Bundle?) { super.oncreate(savedinstancestate) sethasoptionsmenu(true) mapiclient = GoogleApiClient.Builder(activity).addApi(LocationServices.API).addConnectionCallbacks(object : GoogleApiClient.ConnectionCallbacks { override fun onconnected(bundle: Bundle?) { activity.invalidateoptionsmenu() override fun onconnectionsuspended(i: Int) {... ).build() getmapasync(this) override fun onresume() { super.onresume() setupeula() findlocation() 16
17 Map Fragment Code: Kotlin (3) // MapsFragment.kt (continued) override fun onstart() { //... activity.invalidateoptionsmenu() mapiclient.connect() override fun onstop() { //... mapiclient.disconnect() private fun findlocation() { updatelocationui() if (haslocationpermission()) { mfusedlocationproviderclient = LocationServices.getFusedLocationProviderClient(activity) mdefaultlocation = LatLng(40.0, -83.0) val locationrequest = LocationRequest.create() locationrequest.priority = LocationRequest.PRIORITY_HIGH_ACCURACY locationrequest.numupdates = 1 locationrequest.interval = 0 val locationprovider = LocationServices.getFusedLocationProviderClient(activity) val locationresult = locationprovider.lastlocation locationresult.addoncompletelistener(activity, object : OnCompleteListener<Location> { override fun oncomplete(task: Task<Location>) { if (task.issuccessful) { // Set the map's camera position to the current location of the device. mlocation = task.result as Location mmap.movecamera(cameraupdatefactory.newlatlngzoom( LatLng(mLocation!!.latitude, mlocation!!.longitude), 16f)) else { /* Disable location */ ) // Else request permissions, end of method. 17
18 Map Fragment Code: Kotlin (4) // MapsFragment.kt (continued) private fun setupeula() { msettings = activity.getsharedpreferences(getstring(r.string.prefs), 0) val iseulaaccepted = msettings!!.getboolean(getstring(r.string.eula_accepted_key), false) if (!iseulaaccepted) { val euladialogfragment = EulaDialogFragment() euladialogfragment.show(activity.supportfragmentmanager, "eula") override fun oncreateoptionsmenu(menu: Menu?, inflater: MenuInflater?) { super.oncreateoptionsmenu(menu, inflater) inflater?.inflate(r.menu.maps_menu, menu) override fun onoptionsitemselected(item: MenuItem?): Boolean { when (item?.itemid) { R.id.menu_showcurrentlocation -> { Log.d(TAG, "Showing current location") if (haslocationpermission()) { findlocation() else { requestpermissions(location_permissions, REQUEST_LOCATION_PERMISSIONS) return true 18
19 Map Fragment Code: Kotlin (5) // MapsFragment.kt (continued) override fun onrequestpermissionsresult(requestcode: Int, permissions: Array<String>, grantresults: IntArray) { mlocationpermissiongranted = false when (requestcode) { REQUEST_LOCATION_PERMISSIONS -> { // If request is cancelled, the result arrays are empty. if (grantresults.isnotempty() && grantresults[0] == PackageManager.PERMISSION_GRANTED) { mlocationpermissiongranted = true updatelocationui() private fun updatelocationui() { if (mmapready) { try { if (mlocationpermissiongranted) { mmap.ismylocationenabled = true mmap.uisettings.ismylocationbuttonenabled = true else { /* Disable location, request permissions */ catch (e: SecurityException) { Log.e("Exception: %s", e.message) /*... */ override fun onmapready(googlemap: GoogleMap) { mmap = googlemap mmap.addmarker(markeroptions().position(latlng(40.0, -83.0)).title("Ohio State University")) try { mmap.ismylocationenabled = true mmap.uisettings.ismylocationbuttonenabled = true catch (se: SecurityException) { Log.e(TAG, "Location not enabled, skipping") mmap.isbuildingsenabled = true mmap.isindoorenabled = true mmapready = true private fun haslocationpermission(): Boolean { /*... */ 19
20 Map Menu Layout <menu xmlns:app= " xmlns:android= " <item android:orderincategory="100" ic_menu_mylocation" app:showasaction="ifroom"/> </menu> 20
21 License Agreement Fragment: Java Yes, this is required public class EulaDialogFragment extends DialogFragment { public void seteulaaccepted() { SharedPreferences prefs = getactivity().getsharedpreferences( getstring(r.string.prefs), 0); SharedPreferences.Editor editor = prefs.edit(); editor.putboolean(getstring(r.string.eula_accepted_key), true).apply(); public Dialog oncreatedialog(bundle savedinstancestate) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.settitle(r.string.eula_title).setmessage(html.fromhtml(getstring(r.string.eula))).setpositivebutton(r.string.accept, new DialogInterface.OnClickListener() { public void onclick(dialoginterface dialog, int id) { seteulaaccepted(); ).setnegativebutton(r.string.decline, new DialogInterface.OnClickListener() { public void onclick(dialoginterface dialog, int which) { dialog.cancel(); getactivity().finish(); ); return builder.create(); 21
22 License Agreement Fragment: Kotlin class EulaDialogFragment : DialogFragment() { fun seteulaaccepted() { val prefs = activity.getsharedpreferences(getstring(r.string.prefs), 0) val editor = prefs.edit() editor.putboolean(getstring(r.string.eula_accepted_key), true).apply() override fun oncreatedialog(savedinstancestate: Bundle?): Dialog { // Use the Builder class for convenient dialog construction val builder = AlertDialog.Builder(activity) builder.settitle(r.string.about_app).setmessage(html.fromhtml(getstring(r.string.eula))).setpositivebutton(r.string.accept) { dialog, id -> seteulaaccepted().setnegativebutton(r.string.decline) { dialog, which -> dialog.cancel() activity.finish() return builder.create() 22
23 Location Determination and Practices Types: GPS Cellular WiFi Best practices for location-based applications: Check for connectivity Use threading to ensure responsiveness (Note: Threading built-in for many SDK components) 23
24 References Chapter 10: Channeling the Outside World through your Android Device from Android SDK 3 Programming for Dummies Chapters 33 34: Locations and Play Services and Maps from Android Programming: The Big Nerd Ranch Guide (3rd ed.)
25 Thank You Questions and comments? 25
Android Programming วรเศรษฐ ส วรรณ ก.
Android Programming วรเศรษฐ ส วรรณ ก uuriter@yahoo.com http://bit.ly/wannikacademy 1 Google Map API v2 2 Preparation SDK Manager Google Play Services AVD Google API >= 4.2.2 [http://bit.ly/1hedxwm] https://developers.google.com/maps/documentation/android/start
More informationAndroid Application Model I
Android Application Model I CSE 5236: Mobile Application Development Instructor: Adam C. Champion, Ph.D. Course Coordinator: Dr. Rajiv Ramnath Reading: Big Nerd Ranch Guide, Chapters 3, 5 (Activities);
More informationGoogle Maps library requires v2.50 or above.
Google Maps library requires v2.50 or above. Google Maps library allows you to add Google maps to your application. This library requires Android 3+ and will only work on devices with Google Play service.
More informationAndroid Application Model I. CSE 5236: Mobile Application Development Instructor: Adam C. Champion, Ph.D. Course Coordinator: Dr.
Android Application Model I CSE 5236: Mobile Application Development Instructor: Adam C. Champion, Ph.D. Course Coordinator: Dr. Rajiv Ramnath 1 Framework Support (e.g. Android) 2 Framework Capabilities
More informationLab 6: Google Maps Android API v2 Android Studio 10/14/2016
Lab 6: Google Maps Android API v2 Android Studio 10/14/2016 One of the defining features of mobile phones is their portability. It's not surprising that some of the most enticing APIs are those that enable
More informationProgramming with Android: The Google Maps Library. Slides taken from
Programming with Android: The Google Slides taken from Marco Di Felice Android: Deploying Map-based Apps Two versions of Android Google API API v1 API v2 - Deprecated, not supported anymore since 18th
More informationMobile Programming Lecture 7. Dialogs, Menus, and SharedPreferences
Mobile Programming Lecture 7 Dialogs, Menus, and SharedPreferences Agenda Dialogs Menus SharedPreferences Android Application Components 1. Activity 2. Broadcast Receiver 3. Content Provider 4. Service
More information1. Location Services. 1.1 GPS Location. 1. Create the Android application with the following attributes. Application Name: MyLocation
1. Location Services 1.1 GPS Location 1. Create the Android application with the following attributes. Application Name: MyLocation Project Name: Package Name: MyLocation com.example.mylocation 2. Put
More informationMobile Application Development MyRent Settings
Mobile Application Development MyRent Settings Waterford Institute of Technology October 13, 2016 John Fitzgerald Waterford Institute of Technology, Mobile Application Development MyRent Settings 1/19
More informationUser Interface Development. CSE 5236: Mobile Application Development Instructor: Adam C. Champion Course Coordinator: Dr.
User Interface Development CSE 5236: Mobile Application Development Instructor: Adam C. Champion Course Coordinator: Dr. Rajiv Ramnath 1 Outline UI Support in Android Fragments 2 UI Support in the Android
More informationIEMS 5722 Mobile Network Programming and Distributed Server Architecture
Department of Information Engineering, CUHK MScIE 2 nd Semester, 2016/17 IEMS 5722 Mobile Network Programming and Distributed Server Architecture Lecture 12 Advanced Android Programming Lecturer: Albert
More informationHybrid Apps Combining HTML5 + JAVASCRIPT + ANDROID
Hybrid Apps Combining HTML5 + JAVASCRIPT + ANDROID Displaying Web Page For displaying web page, two approaches may be adopted: 1. Invoke browser application: In this case another window out side app will
More informationRUNTIME PERMISSIONS IN ANDROID 6.0 Lecture 10a
RUNTIME PERMISSIONS IN ANDROID 6.0 Lecture 10a COMPSCI 702 Security for Smart-Devices Muhammad Rizwan Asghar March 20, 2018 2 ANDROID 6.0 A version of the Android mobile operating system officially released
More informationAction Bar. (c) 2010 Haim Michael. All Rights Reserv ed.
Action Bar Introduction The Action Bar is a widget that is shown on top of the screen. It includes the application logo on its left side together with items available from the options menu on the right.
More informationAndroid Programs Day 5
Android Programs Day 5 //Android Program to demonstrate the working of Options Menu. 1. Create a New Project. 2. Write the necessary codes in the MainActivity.java to create OptionMenu. 3. Add the oncreateoptionsmenu()
More informationHave a development environment in 256 or 255 Be familiar with the application lifecycle
Upcoming Assignments Readings: Chapter 4 by today Horizontal Prototype due Friday, January 22 Quiz 2 today at 2:40pm Lab Quiz next Friday during lecture time (2:10-3pm) Have a development environment in
More informationAndroid permissions Defining and using permissions Component permissions and related APIs
Android permissions Defining and using permissions Component permissions and related APIs Permissions protects resources and data For instance, they limit access to: User information e.g, Contacts Cost-sensitive
More informationUI Fragment.
UI Fragment 1 Contents Fragments Overviews Lifecycle of Fragments Creating Fragments Fragment Manager and Transactions Adding Fragment to Activity Fragment-to-Fragment Communication Fragment SubClasses
More informationStarting Another Activity Preferences
Starting Another Activity Preferences Android Application Development Training Xorsat Pvt. Ltd www.xorsat.net fb.com/xorsat.education Outline Starting Another Activity Respond to the Button Create the
More information<uses-permission android:name="android.permission.internet"/>
Chapter 11 Playing Video 11.1 Introduction We have discussed how to play audio in Chapter 9 using the class MediaPlayer. This class can also play video clips. In fact, the Android multimedia framework
More informationQ.1 Explain the dialog and also explain the Demonstrate working dialog in android.
Q.1 Explain the dialog and also explain the Demonstrate working dialog in android. - A dialog is a small window that prompts the user to make a decision or enter additional information. - A dialog does
More informationMobile Computing Fragments
Fragments APM@FEUP 1 Fragments (1) Activities are used to define a full screen interface and its functionality That s right for small screen devices (smartphones) In bigger devices we can have more interface
More informationTutorial: Setup for Android Development
Tutorial: Setup for Android Development Adam C. Champion CSE 5236: Mobile Application Development Spring 2018 Based on material from C. Horstmann [1], J. Bloch [2], C. Collins et al. [4], M.L. Sichitiu
More informationFragments were added to the Android API in Honeycomb, API 11. The primary classes related to fragments are: android.app.fragment
FRAGMENTS Fragments An activity is a container for views When you have a larger screen device than a phone like a tablet it can look too simple to use phone interface here. Fragments Mini-activities, each
More informationDEPARTMENT OF COMPUTER SCIENCE THE UNIVERSITY OF HONG KONG. CSIS0801 Final Year Project. WhozzUp - A Novel Big Data App for HK (Individual Report)
DEPARTMENT OF COMPUTER SCIENCE THE UNIVERSITY OF HONG KONG CSIS0801 Final Year Project WhozzUp - A Novel Big Data App for HK (Individual Report) Nundraj NARAYEN (2012518487) 4/17/2016 Page 2 Page 3 Page
More information05. RecyclerView and Styles
05. RecyclerView and Styles 08.03.2018 1 Agenda Intents Creating Lists with RecyclerView Creating Cards with CardView Application Bar Menu Styles and Themes 2 Intents 3 What is Intent? An Intent is an
More informationReal-Time Embedded Systems
Real-Time Embedded Systems DT8025, Fall 2016 http://goo.gl/azfc9l Lecture 8 Masoumeh Taromirad m.taromirad@hh.se Center for Research on Embedded Systems School of Information Technology 1 / 51 Smart phones
More informationEmbedded Systems Programming - PA8001
Embedded Systems Programming - PA8001 http://goo.gl/ydeczu Lecture 8 Mohammad Mousavi m.r.mousavi@hh.se Center for Research on Embedded Systems School of Information Science, Computer and Electrical Engineering
More informationCS 528 Mobile and Ubiquitous Computing Lecture 4a: Fragments, Camera Emmanuel Agu
CS 528 Mobile and Ubiquitous Computing Lecture 4a: Fragments, Camera Emmanuel Agu Fragments Recall: Fragments Sub-components of an Activity (screen) An activity can contain multiple fragments, organized
More informationComputer Science Large Practical: Storage, Settings and Layouts. Stephen Gilmore School of Informatics October 26, 2017
Computer Science Large Practical: Storage, Settings and Layouts Stephen Gilmore School of Informatics October 26, 2017 Contents 1. Storing information 2. Kotlin compilation 3. Settings 4. Layouts 1 Storing
More informationOur First Android Application
Mobile Application Development Lecture 04 Imran Ihsan Our First Android Application Even though the HelloWorld program is trivial in introduces a wealth of new ideas the framework, activities, manifest,
More informationTablets have larger displays than phones do They can support multiple UI panes / user behaviors at the same time
Tablets have larger displays than phones do They can support multiple UI panes / user behaviors at the same time The 1 activity 1 thing the user can do heuristic may not make sense for larger devices Application
More informationDiving into Android. By Jeroen Tietema. Jeroen Tietema,
Diving into Android By Jeroen Tietema Jeroen Tietema, 2015 1 Requirements 4 Android SDK 1 4 Android Studio (or your IDE / editor of choice) 4 Emulator (Genymotion) or a real device. 1 See https://developer.android.com
More informationCOMP4521 EMBEDDED SYSTEMS SOFTWARE
COMP4521 EMBEDDED SYSTEMS SOFTWARE LAB 5: USING WEBVIEW AND USING THE NETWORK INTRODUCTION In this lab we modify the application we created in the first three labs. Instead of using the default browser,
More informationKotlin for wearables: use case. Andrey Mukamolov
Kotlin for wearables: use case Andrey Mukamolov Domain Dota 2 is a competitive MOBA game A lot of fans and money Most toxic community Dota 2 Dota 2 heroes Dota 2 MMR Wear OS by Google
More informationMVC Apps Basic Widget Lifecycle Logging Debugging Dialogs
Overview MVC Apps Basic Widget Lifecycle Logging Debugging Dialogs Lecture: MVC Model View Controller What is an App? Android Activity Lifecycle Android Debugging Fixing Rotations & Landscape Layouts Localization
More informationCMSC436: Fall 2013 Week 3 Lab
CMSC436: Fall 2013 Week 3 Lab Objectives: Familiarize yourself with the Activity class, the Activity lifecycle, and the Android reconfiguration process. Create and monitor a simple application to observe
More informationProduced by. Mobile Application Development. Higher Diploma in Science in Computer Science. Eamonn de Leastar
Mobile Application Development Higher Diploma in Science in Computer Science Produced by Eamonn de Leastar (edeleastar@wit.ie) Department of Computing, Maths & Physics Waterford Institute of Technology
More informationMore Effective Layouts
More Effective Layouts In past weeks, we've looked at ways to make more effective use of the presented display (e.g. elastic layouts, and separate layouts for portrait and landscape), as well as autogenerating
More informationLifeStreet Media Android Publisher SDK Integration Guide
LifeStreet Media Android Publisher SDK Integration Guide Version 1.12.0 Copyright 2015 Lifestreet Corporation Contents Introduction... 3 Downloading the SDK... 3 Choose type of SDK... 3 Adding the LSM
More informationAPI Guide for Gesture Recognition Engine. Version 2.0
API Guide for Gesture Recognition Engine Version 2.0 Table of Contents Gesture Recognition API... 3 API URI... 3 Communication Protocol... 3 Getting Started... 4 Protobuf... 4 WebSocket Library... 4 Project
More informationMultiple devices. Use wrap_content and match_parent Use RelativeLayout/ConstraintLayout Use configuration qualifiers
Multiple devices Multiple devices Use wrap_content and match_parent Use RelativeLayout/ConstraintLayout Use configuration qualifiers Create a new directory in your project's res/ and name it using the
More informationActivities and Fragments
Activities and Fragments 21 November 2017 Lecture 5 21 Nov 2017 SE 435: Development in the Android Environment 1 Topics for Today Activities UI Design and handlers Fragments Source: developer.android.com
More informationEMBEDDED SYSTEMS PROGRAMMING Application Tip: Saving State
EMBEDDED SYSTEMS PROGRAMMING 2016-17 Application Tip: Saving State THE PROBLEM How to save the state (of a UI, for instance) so that it survives even when the application is closed/killed The state should
More informationLecture 13 Mobile Programming. Google Maps Android API
Lecture 13 Mobile Programming Google Maps Android API Agenda Generating MD5 Fingerprint Signing up for API Key (as developer) Permissions MapView and MapActivity Layers MyLocation Important!!! These lecture
More informationProduced by. Mobile Application Development. Higher Diploma in Science in Computer Science. Eamonn de Leastar
Mobile Application Development Higher Diploma in Science in Computer Science Produced by Eamonn de Leastar (edeleastar@wit.ie) Department of Computing, Maths & Physics Waterford Institute of Technology
More informationThe Internet. CS 2046 Mobile Application Development Fall Jeff Davidson CS 2046
The Internet CS 2046 Mobile Application Development Fall 2010 Announcements HW2 due Monday, 11/8, at 11:59pm If you want to know what it means to root your phone, or what this does, see Newsgroup HW1 grades
More informationApplied Cognitive Computing Fall 2016 Android Application + IBM Bluemix (Cloudant NoSQL DB)
Applied Cognitive Computing Fall 2016 Android Application + IBM Bluemix (Cloudant NoSQL DB) In this exercise, we will create a simple Android application that uses IBM Bluemix Cloudant NoSQL DB. The application
More informationInternal Services. CSE 5236: Mobile Application Development Instructor: Adam C. Champion, Ph.D. Course Coordinator: Dr.
Internal Services CSE 5236: Mobile Application Development Instructor: Adam C. Champion, Ph.D. Course Coordinator: Dr. Rajiv Ramnath 1 Internal Services Communication: Email, SMS and telephony Audio and
More informationWorkshop. 1. Create a simple Intent (Page 1 2) Launch a Camera for Photo Taking
Workshop 1. Create a simple Intent (Page 1 2) Launch a Camera for Photo Taking 2. Create Intent with Parsing Data (Page 3 8) Making Phone Call and Dial Access Web Content Playing YouTube Video 3. Create
More informationEMBEDDED SYSTEMS PROGRAMMING UI Specification: Approaches
EMBEDDED SYSTEMS PROGRAMMING 2016-17 UI Specification: Approaches UIS: APPROACHES Programmatic approach: UI elements are created inside the application code Declarative approach: UI elements are listed
More informationAnswers to Exercises
Answers to Exercises CHAPTER 1 ANSWERS 1. What is an AVD? Ans: An AVD is an Android Virtual Device. It represents an Android emulator, which emulates a particular configuration of an actual Android device.
More informationAddressing Non-Functional Requirements in Mobile Applications
Addressing Non-Functional Requirements in Mobile Applications CSE 5236: Mobile Application Development Instructor: Adam C. Champion, Ph.D. Course Coordinator: Dr. Rajiv Ramnath 1 Outline Non-Functional
More informationScreen Slides. The Android Studio wizard adds a TextView to the fragment1.xml layout file and the necessary code to Fragment1.java.
Screen Slides References https://developer.android.com/training/animation/screen-slide.html https://developer.android.com/guide/components/fragments.html Overview A fragment can be defined by a class and
More informationAndroid. Mobile operating system developed by Google A complete stack. Based on the Linux kernel Open source under the Apache 2 license
Android Android Mobile operating system developed by Google A complete stack OS, framework A rich set of applications Email, calendar, browser, maps, text messaging, contacts, camera, dialer, music player,
More informationThis lecture. The BrowserIntent Example (cont d)
This lecture 5COSC005W MOBILE APPLICATION DEVELOPMENT Lecture 10: Working with the Web Browser Dr Dimitris C. Dracopoulos Android provides a full-featured web browser based on the Chromium open source
More informationUNDERSTANDING ACTIVITIES
Activities Activity is a window that contains the user interface of your application. An Android activity is both a unit of user interaction - typically filling the whole screen of an Android mobile device
More informationMobila applikationer och trådlösa nät
Mobila applikationer och trådlösa nät HI1033 Lecture 8 Today s topics Location Based Services Google Maps API MultiMedia Location Based Services LocationManager provides access to location based services
More informationCS 4330/5390: Mobile Application Development Exam 1
1 Spring 2017 (Thursday, March 9) Name: CS 4330/5390: Mobile Application Development Exam 1 This test has 8 questions and pages numbered 1 through 7. Reminders This test is closed-notes and closed-book.
More informationAndroid Coding. Dr. J.P.E. Hodgson. August 23, Dr. J.P.E. Hodgson () Android Coding August 23, / 27
Android Coding Dr. J.P.E. Hodgson August 23, 2010 Dr. J.P.E. Hodgson () Android Coding August 23, 2010 1 / 27 Outline Starting a Project 1 Starting a Project 2 Making Buttons Dr. J.P.E. Hodgson () Android
More informationCS 4518 Mobile and Ubiquitous Computing Lecture 5: Rotating Device, Saving Data, Intents and Fragments Emmanuel Agu
CS 4518 Mobile and Ubiquitous Computing Lecture 5: Rotating Device, Saving Data, Intents and Fragments Emmanuel Agu Administrivia Moved back deadlines for projects 2, 3 and final project See updated schedule
More informationMultiple Activities. Many apps have multiple activities
Intents Lecture 7 Multiple Activities Many apps have multiple activities An activity A can launch another activity B in response to an event The activity A can pass data to B The second activity B can
More informationOverview of Activities
d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~schmidt Institute for Software Integrated Systems Vanderbilt University Nashville, Tennessee, USA CS 282 Principles of Operating Systems II Systems Programming
More informationAndroid Application Development using Kotlin
Android Application Development using Kotlin 1. Introduction to Kotlin a. Kotlin History b. Kotlin Advantages c. How Kotlin Program Work? d. Kotlin software Prerequisites i. Installing Java JDK and JRE
More informationMobile and Ubiquitous Computing: Android Programming (part 4)
Mobile and Ubiquitous Computing: Android Programming (part 4) Master studies, Winter 2015/2016 Dr Veljko Pejović Veljko.Pejovic@fri.uni-lj.si Examples from: Mobile and Ubiquitous Computing Jo Vermeulen,
More informationAndroid Application Development
Android Application Development Octav Chipara What is Android A free, open source mobile platform A Linux-based, multiprocess, multithreaded OS Android is not a device or a product It s not even limited
More informationProduced by. Mobile Application Development. Eamonn de Leastar
Mobile Application Development Produced by Eamonn de Leastar (edeleastar@wit.ie) Department of Computing, Maths & Physics Waterford Institute of Technology http://www.wit.ie http://elearning.wit.ie A First
More informationIslamic University of Gaza. Faculty of Engineering. Computer Engineering Department. Mobile Computing ECOM Eng. Wafaa Audah.
Islamic University of Gaza Faculty of Engineering Computer Engineering Department Mobile Computing ECOM 5341 By Eng. Wafaa Audah July 2013 1 Launch activitits, implicit intents, data passing & start activity
More informationEMBEDDED SYSTEMS PROGRAMMING Application Tip: Managing Screen Orientation
EMBEDDED SYSTEMS PROGRAMMING 2016-17 Application Tip: Managing Screen Orientation ORIENTATIONS Portrait Landscape Reverse portrait Reverse landscape ON REVERSE PORTRAIT Android: all four orientations are
More informationAndroid Application Model II. CSE 5236: Mobile Application Development Instructor: Adam C. Champion, Ph.D. Course Coordinator: Dr.
Android Application Model II CSE 5236: Mobile Application Development Instructor: Adam C. Champion, Ph.D. Course Coordinator: Dr. Rajiv Ramnath 1 Outline Activity Lifecycle Services Persistence Content
More informationANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL I)
ANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL I) Lecture 3: Android Life Cycle and Permission Android Lifecycle An activity begins its lifecycle when entering the oncreate() state If not
More informationMobile and Ubiquitous Computing: Android Programming (part 3)
Mobile and Ubiquitous Computing: Android Programming (part 3) Master studies, Winter 2015/2016 Dr Veljko Pejović Veljko.Pejovic@fri.uni-lj.si Based on Programming Handheld Systems, Adam Porter, University
More informationProduced by. Mobile Application Development. Higher Diploma in Science in Computer Science. Eamonn de Leastar
Mobile Application Development Higher Diploma in Science in Computer Science Produced by Eamonn de Leastar (edeleastar@wit.ie) Department of Computing, Maths & Physics Waterford Institute of Technology
More informationANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL I)
ANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL I) Lecture 3: Android Life Cycle and Permission Entire Lifetime An activity begins its lifecycle when entering the oncreate() state If not interrupted
More informationProgramming with Android: Geo-localization and Google Map Services. Luca Bedogni. Dipartimento di Scienze dell Informazione Università di Bologna
Programming with Android: Geo-localization and Google Map Services Luca Bedogni Dipartimento di Scienze dell Informazione Università di Bologna Outline Geo-localization techniques Location Listener and
More informationMobile Programming Lecture 5. Composite Views, Activities, Intents and Filters
Mobile Programming Lecture 5 Composite Views, Activities, Intents and Filters Lecture 4 Review How do you get the value of a string in the strings.xml file? What are the steps to populate a Spinner or
More informationMAD ASSIGNMENT NO 3. Submitted by: Rehan Asghar BSSE AUGUST 25, SUBMITTED TO: SIR WAQAS ASGHAR Superior CS&IT Dept.
MAD ASSIGNMENT NO 3 Submitted by: Rehan Asghar BSSE 7 15126 AUGUST 25, 2017 SUBMITTED TO: SIR WAQAS ASGHAR Superior CS&IT Dept. MainActivity.java File package com.example.tutorialspoint; import android.manifest;
More informationCS 528 Mobile and Ubiquitous Computing Lecture 3b: Android Activity Lifecycle and Intents Emmanuel Agu
CS 528 Mobile and Ubiquitous Computing Lecture 3b: Android Activity Lifecycle and Intents Emmanuel Agu Android Activity LifeCycle Starting Activities Android applications don't start with a call to main(string[])
More informationSouth Africa Version Control.
South Africa 2013 Lecture 7: User Interface (Navigation)+ Version Control http://aiti.mit.edu South Africa 2013 Today s agenda Recap Navigation Version Control 2 Tutorial Recap Activity 1 Activity 2 Text
More informationARCHETYPE MODERN ANDROID ARCHITECTURE STEPAN GONCHAROV / DENIS NEKLIUDOV
ARCHETYPE MODERN ANDROID ARCHITECTURE STEPAN GONCHAROV / DENIS NEKLIUDOV 90seconds.tv 14000+ VIDEOS 1200+ BRANDS 92+ COUNTRIES data class RegisterViewModelStateImpl( override val email: ObservableString
More informationActionBar. import android.support.v7.app.actionbaractivity; public class MyAppBarActivity extends ActionBarActivity { }
Android ActionBar import android.support.v7.app.actionbaractivity; public class MyAppBarActivity extends ActionBarActivity { Layout, activity.xml
More informationMeniu. Create a project:
Meniu Create a project: Project name: P0131_MenuSimple Build Target: Android 2.3.3 Application name: MenuSimple Package name: ru.startandroid.develop.menusimple Create Activity: MainActivity Open MainActivity.java.
More informationLECTURE NOTES OF APPLICATION ACTIVITIES
Department of Information Networks The University of Babylon LECTURE NOTES OF APPLICATION ACTIVITIES By College of Information Technology, University of Babylon, Iraq Samaher@inet.uobabylon.edu.iq The
More informationLogin with Amazon. Getting Started Guide for Android apps
Login with Amazon Getting Started Guide for Android apps Login with Amazon: Getting Started Guide for Android Copyright 2017 Amazon.com, Inc., or its affiliates. All rights reserved. Amazon and the Amazon
More informationAndroid Data Binding: This is the DSL you're looking for
Android Data Binding: This is the DSL you're looking for Maksim Lin Freelance Android Developer www.manichord.com The plan Why Data Binding? Brief intro to Data Binding Library Adding Data Binding to an
More informationACTIVITY, FRAGMENT, NAVIGATION. Roberto Beraldi
ACTIVITY, FRAGMENT, NAVIGATION Roberto Beraldi Introduction An application is composed of at least one Activity GUI It is a software component that stays behind a GUI (screen) Activity It runs inside the
More informationAndroid Basics. Android UI Architecture. Android UI 1
Android Basics Android UI Architecture Android UI 1 Android Design Constraints Limited resources like memory, processing, battery à Android stops your app when not in use Primarily touch interaction à
More informationIntents. Your first app assignment
Intents Your first app assignment We will make this. Decidedly lackluster. Java Code Java Code XML XML Preview XML Java Code Java Code XML Buttons that work
More informationFragments and the Maps API
Fragments and the Maps API Alexander Nelson October 6, 2017 University of Arkansas - Department of Computer Science and Computer Engineering Fragments Fragments Fragment A behavior or a portion of a user
More informationAPI Guide for Gesture Recognition Engine. Version 1.1
API Guide for Gesture Recognition Engine Version 1.1 Table of Contents Table of Contents... 2 Gesture Recognition API... 3 API URI... 3 Communication Protocol... 3 Getting Started... 4 Protobuf... 4 WebSocket
More informationEMBEDDED SYSTEMS PROGRAMMING Application Basics
EMBEDDED SYSTEMS PROGRAMMING 2015-16 Application Basics APPLICATIONS Application components (e.g., UI elements) are objects instantiated from the platform s frameworks Applications are event driven ( there
More informationCreate Parent Activity and pass its information to Child Activity using Intents.
Create Parent Activity and pass its information to Child Activity using Intents. /* MainActivity.java */ package com.example.first; import android.os.bundle; import android.app.activity; import android.view.menu;
More informationUpdate to newest version and translate to English.
1. Import Project 1.1 Preparation 1.2 Project Configuration 1.3 Configure Display Resources 1.4 Configure Test Environment 1.5 Enable Video Buffer 2. Ad formats 2.1 Banner 2.1.1Banner 2.1.2 FullScreen
More informationWriting Efficient Drive Apps for Android. Claudio Cherubino / Alain Vongsouvanh Google Drive Developer Relations
Writing Efficient Drive Apps for Android Claudio Cherubino / Alain Vongsouvanh Google Drive Developer Relations Raise your hand if you use Google Drive source: "put your hands up!" (CC-BY) Raise the other
More informationProduced by. Mobile Application Development. David Drohan Department of Computing & Mathematics Waterford Institute of Technology
Mobile Application Development Produced by David Drohan (ddrohan@wit.ie) Department of Computing & Mathematics Waterford Institute of Technology http://www.wit.ie Android Google Services" Part 1 Google+
More informationXin Pan. CSCI Fall
Xin Pan CSCI5448 2011 Fall Outline Introduction of Android System Four primary application components AndroidManifest.xml Introduction of Android Sensor Framework Package Interface Classes Examples of
More informationProduced by. Mobile Application Development. David Drohan Department of Computing & Mathematics Waterford Institute of Technology
Mobile Application Development Produced by David Drohan (ddrohan@wit.ie) Department of Computing & Mathematics Waterford Institute of Technology http://www.wit.ie Android Google Services" Part 1 Google+
More informationAndroid Apps Development for Mobile and Tablet Device (Level I) Lesson 4. Workshop
Workshop 1. Create an Option Menu, and convert it into Action Bar (Page 1 8) Create an simple Option Menu Convert Option Menu into Action Bar Create Event Listener for Menu and Action Bar Add System Icon
More informationUnderstand applications and their components. activity service broadcast receiver content provider intent AndroidManifest.xml
Understand applications and their components activity service broadcast receiver content provider intent AndroidManifest.xml Android Application Written in Java (it s possible to write native code) Good
More information10.1 Introduction. Higher Level Processing. Word Recogniton Model. Text Output. Voice Signals. Spoken Words. Syntax, Semantics, Pragmatics
Chapter 10 Speech Recognition 10.1 Introduction Speech recognition (SR) by machine, which translates spoken words into text has been a goal of research for more than six decades. It is also known as automatic
More information