Programmierung                                 von Apps                              Android System ServicesDanny Fürniß, ...
Die Studierenden                                  kennen die wichtigsten                               Android System Serv...
Danny Fürniß, 12.06.2012, 3                              Bildquelle: http://developer.android.com/guide/basics/what-is-and...
Was sind System Services?                              Schnittstellen zur                              •   Interaktion mit...
Welche gibt es?                                Context.*_SERVICE                                     map to               ...
Danny Fürniß, 12.06.2012, 6                              Wie greift man darauf zu?
Activity                              LifecycleDanny Fürniß, 12.06.2012, 7                              Siehe auch „Learni...
Danny Fürniß, 12.06.2012, 8                              Wie greift man darauf zu?
Danny Fürniß, 12.06.2012, 9                              Sensors
Danny Fürniß, 12.06.2012, 10                               SensorManager   Demo
Danny Fürniß, 12.06.2012, 11                               Location
LocationManagerDanny Fürniß, 12.06.2012, 12                               android.permission.ACCESS_FINE_LOCATION         ...
Danny Fürniß, 12.06.2012, 13                               Alarms
Danny Fürniß, 12.06.2012, 14                               AlarmManager   Demo
Danny Fürniß, 12.06.2012, 15                               Notifications
Danny Fürniß, 12.06.2012, 16                               NotificationManager   Demo
Danny Fürniß, 12.06.2012, 17                               AccountManager
Danny Fürniß, 12.06.2012, 18                               Konten und Synchronisierung
Accounts lesenDanny Fürniß, 12.06.2012, 19                               android.permission.GET_ACCOUNTS                  ...
Accounts authentifizierenDanny Fürniß, 12.06.2012, 20                               android.permission.USE_CREDENTIALS    ...
Danny Fürniß, 12.06.2012, 21                               Account Token erneuern   Demo
Account Token invalidierenDanny Fürniß, 12.06.2012, 22                                                            Demo
Accounts authentifizierenDanny Fürniß, 12.06.2012, 23                                     http://developer.android.com/tra...
HS Karlsruhe                               NotenSpiegelDanny Fürniß, 12.06.2012, 24                                       ...
Danny Fürniß, 12.06.2012, 25                               Custom Account   Demo
Danny Fürniß, 12.06.2012, 26                               SyncAdapter
Danny Fürniß, 12.06.2012, 27                               SyncAdapter   Demo
SyncAdapter implementieren                               Benötigt werden:                               •   ContentProvide...
Danny Fürniß, 12.06.2012, 29                               Backup
Danny Fürniß, 12.06.2012, 30                               BackupManager   Demo
Konfiguriere BackupAgent                               <application                                      android:icon="@dr...
Implementiere BackupAgent                               @Override                               public void onCreate() {  ...
Fordere Backup an                               BackupManager bm = new BackupManager(ctx);                               b...
Danny Fürniß, 12.06.2012, 34                               ShareActionProvider
Konfiguration des Menüitems                               <item android:id="@+id/shareAction"                             ...
ShareActionProvider merken                               MenuInflater inflater = mode.getMenuInflater();                  ...
ShareIntent setzen                               Intent shareIntent = new Intent();                               shareInt...
Sharing ohne ActionBar                               Intent intent = new Intent(Intent.ACTION_SEND);                      ...
Danny Fürniß, 12.06.2012, 39                               Barcode Scanner
Starte Scanner                               Intent intent =                                       new Intent("com.google....
Empfange Ergebnis                               public void onActivityResult(int requestCode, int resultCode,             ...
Danny Fürniß, 12.06.2012, 42                               Publishing
Application PublishingDanny Fürniß, 12.06.2012, 43                                 http://developer.android.com/guide/publ...
Release vorbereiten                               • Log Statements entfernen                               • Verzeichnisse...
App versionieren                               android:versionCode                                     Integer, maschinenl...
Release durchführen                               •   Release Version bauen                               •   APK signiere...
Portions of this presentation                               are modifications based on                               work ...
Upcoming SlideShare
Loading in …5
×

Android System Services

1,500 views

Published on

Unterlage zur Android Vorlesung "Programmierung von Apps" an der Hochschule Karlsruhe.
Die Studierenden
kennen die wichtigsten
Android System Services und
verstehen, wie diese eingesetzt
werden können.

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,500
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
16
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Android System Services

  1. 1. Programmierung von Apps Android System ServicesDanny Fürniß, 12.06.2012, 1
  2. 2. Die Studierenden kennen die wichtigsten Android System Services und verstehen, wie diese eingesetzt werden können.Danny Fürniß, 12.06.2012, 2
  3. 3. Danny Fürniß, 12.06.2012, 3 Bildquelle: http://developer.android.com/guide/basics/what-is-android.html
  4. 4. Was sind System Services? Schnittstellen zur • Interaktion mit Device Hardware • Interaktion mit Media • Interaktion mit dem System • Interaktion mit anderen AppsDanny Fürniß, 12.06.2012, 4
  5. 5. Welche gibt es? Context.*_SERVICE map to android.*ManagerDanny Fürniß, 12.06.2012, 5 Demo
  6. 6. Danny Fürniß, 12.06.2012, 6 Wie greift man darauf zu?
  7. 7. Activity LifecycleDanny Fürniß, 12.06.2012, 7 Siehe auch „Learning Android“, S. 29
  8. 8. Danny Fürniß, 12.06.2012, 8 Wie greift man darauf zu?
  9. 9. Danny Fürniß, 12.06.2012, 9 Sensors
  10. 10. Danny Fürniß, 12.06.2012, 10 SensorManager Demo
  11. 11. Danny Fürniß, 12.06.2012, 11 Location
  12. 12. LocationManagerDanny Fürniß, 12.06.2012, 12 android.permission.ACCESS_FINE_LOCATION android.permission.ACCESS_COARSE_LOCATION Demo
  13. 13. Danny Fürniß, 12.06.2012, 13 Alarms
  14. 14. Danny Fürniß, 12.06.2012, 14 AlarmManager Demo
  15. 15. Danny Fürniß, 12.06.2012, 15 Notifications
  16. 16. Danny Fürniß, 12.06.2012, 16 NotificationManager Demo
  17. 17. Danny Fürniß, 12.06.2012, 17 AccountManager
  18. 18. Danny Fürniß, 12.06.2012, 18 Konten und Synchronisierung
  19. 19. Accounts lesenDanny Fürniß, 12.06.2012, 19 android.permission.GET_ACCOUNTS Demo
  20. 20. Accounts authentifizierenDanny Fürniß, 12.06.2012, 20 android.permission.USE_CREDENTIALS android.permission.ACCOUNT_MANAGER Demo
  21. 21. Danny Fürniß, 12.06.2012, 21 Account Token erneuern Demo
  22. 22. Account Token invalidierenDanny Fürniß, 12.06.2012, 22 Demo
  23. 23. Accounts authentifizierenDanny Fürniß, 12.06.2012, 23 http://developer.android.com/training/id-auth/authenticate.html
  24. 24. HS Karlsruhe NotenSpiegelDanny Fürniß, 12.06.2012, 24 https://play.google.com/store/apps/details?id=de.mdm.notenspiegel
  25. 25. Danny Fürniß, 12.06.2012, 25 Custom Account Demo
  26. 26. Danny Fürniß, 12.06.2012, 26 SyncAdapter
  27. 27. Danny Fürniß, 12.06.2012, 27 SyncAdapter Demo
  28. 28. SyncAdapter implementieren Benötigt werden: • ContentProvider • Account • Sync Adapter Descriptor • Class extends AbstractThreadedSyncAdapter • SyncAdapterService • android.permission.READ_SYNC_STATS • android.permission.READ_SYNC_SETTINGSDanny Fürniß, 12.06.2012, 28 • android.permission.WRITE_SYNC_SETTINGS Demo
  29. 29. Danny Fürniß, 12.06.2012, 29 Backup
  30. 30. Danny Fürniß, 12.06.2012, 30 BackupManager Demo
  31. 31. Konfiguriere BackupAgent <application android:icon="@drawable/ic_launcher" android:label="@string/app_name"  android:backupAgent=".PVABackupAgent"> <meta‐data android:name="com.google.android.backup.api_key" android:value=„xyz" />Danny Fürniß, 12.06.2012, 31 Demo
  32. 32. Implementiere BackupAgent @Override public void onCreate() { super.onCreate(); Log.i(TAG, "Erzeuge BackupHelper für shared preferences"); SharedPreferencesBackupHelper bh = new SharedPreferencesBackupHelper(this,  "com.dfuerniss.pva.ss2012.sharedprefs_preferences"); addHelper(BACKUP_KEY, bh); }Danny Fürniß, 12.06.2012, 32 Demo
  33. 33. Fordere Backup an BackupManager bm = new BackupManager(ctx); bm.dataChanged();Danny Fürniß, 12.06.2012, 33 Demo
  34. 34. Danny Fürniß, 12.06.2012, 34 ShareActionProvider
  35. 35. Konfiguration des Menüitems <item android:id="@+id/shareAction"  android:showAsAction="always"  android:title="ShareAction" android:actionProviderClass= "android.widget.ShareActionProvider">Danny Fürniß, 12.06.2012, 35
  36. 36. ShareActionProvider merken MenuInflater inflater = mode.getMenuInflater(); inflater.inflate(R.menu.contextualactions, menu); MenuItem item = menu.findItem(R.id.shareAction); mShareActionProvider = (ShareActionProvider)  item.getActionProvider();Danny Fürniß, 12.06.2012, 36
  37. 37. ShareIntent setzen Intent shareIntent = new Intent(); shareIntent.setAction(Intent.ACTION_SEND); shareIntent.putExtra(Intent.EXTRA_TEXT, text); shareIntent.setType("text/plain"); mShareActionProvider.setShareIntent(shareIntent);Danny Fürniß, 12.06.2012, 37 Demo
  38. 38. Sharing ohne ActionBar Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("text/plain"); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); intent.putExtra(Intent.EXTRA_SUBJECT, "This is my subject."); intent.putExtra(Intent.EXTRA_TEXT,  "This is my message text."); startActivity( Intent.createChooser(intent, "Wähle das Share Target..."));Danny Fürniß, 12.06.2012, 38 Demo
  39. 39. Danny Fürniß, 12.06.2012, 39 Barcode Scanner
  40. 40. Starte Scanner Intent intent =  new Intent("com.google.zxing.client.android.SCAN"); intent.putExtra("SCAN_MODE", "QR_CODE_MODE"); final PackageManager packageManager = getPackageManager(); List<ResolveInfo> list =  packageManager.queryIntentActivities(intent,  PackageManager.MATCH_DEFAULT_ONLY); final boolean isAvailable = list.size() > 0; if (isAvailable) { startActivityForResult(intent, 0); } else { Toast.makeText(this, "Keine Barcode‐Scanner App installiert", Danny Fürniß, 12.06.2012, 40 Toast.LENGTH_SHORT).show(); } Demo
  41. 41. Empfange Ergebnis public void onActivityResult(int requestCode, int resultCode,  Intent intent) { if (requestCode == 0) { if (resultCode == RESULT_OK) { String contents = intent.getStringExtra("SCAN_RESULT"); String format = intent.getStringExtra("SCAN_RESULT_FORMAT"); TextView tv = (TextView) findViewById(R.id.qrcodeResult); tv.setText("Scanresult: " + contents + ", Format: " +  format); } else if (resultCode == RESULT_CANCELED) {Danny Fürniß, 12.06.2012, 41 Toast.makeText(this, "Scanvorgang abgebrochen",  Toast.LENGTH_SHORT).show(); } } } Demo
  42. 42. Danny Fürniß, 12.06.2012, 42 Publishing
  43. 43. Application PublishingDanny Fürniß, 12.06.2012, 43 http://developer.android.com/guide/publishing/publishing_overview.html
  44. 44. Release vorbereiten • Log Statements entfernen • Verzeichnisse aufräumen • Ressourcen aktualisieren • android:debuggable auf false stellen • Icon und Label für App bereitstellen • Ggf. API Keys für externe Libs einbinden • Ggf. AGBs oder End User License Agreement (EULA) bereitstellenDanny Fürniß, 12.06.2012, 44 • Ggf. Serveradressen aktualisieren
  45. 45. App versionieren android:versionCode Integer, maschinenlesbar (für User nicht sichtbar) android:versionName String, z. B. major.minor.point (keine interne Verwendung) Zugriff aus AppDanny Fürniß, 12.06.2012, 45 PackageManager#getPackageInfo()
  46. 46. Release durchführen • Release Version bauen • APK signieren • App testen • App veröffentlichenDanny Fürniß, 12.06.2012, 46
  47. 47. Portions of this presentation are modifications based on work created and shared by Google and used according to terms described in the Creative Commons 3.0 Attribution License.Danny Fürniß, 12.06.2012, 47

×