1 / 18

Cosc 5/4730

Cosc 5/4730. Permissions . Permissions. Note that all of start with android.premission . Location: ACCESS_COARSE_LOCATION, ACCESS_FINE_LOCATION, ACCESS_LOCATION_EXTRA_COMMANDS, ACCESS_MOCK_LOCATION About “cell” Network

linh
Download Presentation

Cosc 5/4730

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Cosc 5/4730 Permissions

  2. Permissions Note that all of start with android.premission. • Location: • ACCESS_COARSE_LOCATION, ACCESS_FINE_LOCATION, ACCESS_LOCATION_EXTRA_COMMANDS, ACCESS_MOCK_LOCATION • About “cell” Network • ACCESS_NETWORK_STATE, ACCESS_WIFI_STATE, CHANGE_NETWORK_STATE, CHANGE_WIFI_MULITCAST_STATE, CHANGE_WIFI_STATE, INTERNET (needed to use networking) • Hardware: • BATTERY_STATS, CALL_PHONE, CAMERA, MODIFY_AUDIO_SETTINGS, NFC, READ_EXTERNAL_STORAGE, WRITE_EXTERNAL_STORAGE, RECEIVE_BOOT_OCMPLETED, RECORD_AUDIO, VIBRATE, WAKE_LOCK (prevent screen from dimming and lock), • Varying services • BIND_INPUT_METHOD (InputMethodService), BIND_REMOTEVIEWS (RemoteViewsService), BIND_TEXT_SERVICE (TextService like spellcheckerservice), BIND_VPN_SERVICE (VpnService), BIND_WALLPAPER (WallpaperService) • Bluetooth • BLUETOOTH, BLUETOOTH_ADMIN, • Accounts: (AccountManager) • GET_ACCOUNTS, MANAGE_ACCOUNTS, USER_CREDENTIALS • Text messaging • READ_SMS, RECEIVE_SMS, RECEIVE_MMS, SEND_SMS, WRITE_SMS

  3. Permissions (2) • User “information”: • READ_CALENDAR, WRITE_CALENDAR, READ_CONTACTS, WRITE_CONTACTS, READ_USER_DICTIONARY, WRTIE_USER_DICTIONARY • READ_HISTORY_BOOKMARKS, WRITE_HISTORY_BOOKMARKS, • READ_SOCIAL_STREAM, SUBSCRIBE_FEEDS_READ, SUBSCRIBE_FEEDS_WRITE, WRITE_SOCAIL_STREAM, • READ_SYNC_SETTINGS, READ_SYNC_STATS, WRITE_SYNC_SETTINGS, • SET_ALARM, USE_SIP, WRITE_SETTINGS (system settings), RECEIVE_WAP_PUSH, SET_TIME_ZONE • SET_WALLPAPER, SET_WALLPAPER_HINTS • READ_PROFILE and WRITE_PROFILE (user’s personal profile data) • Phone calls: • READ_PHONE_STATE, READ_CALL_LOG, WRITE_CALL_LOG, PROCESS_OUTGOING_CALLS • Running applications (and recent apps too). • GET_TASKS, REORDER_TASKS

  4. Other Misc Permissions • ADD_VOICEMAIL • Added in API level 14, app must have access to a voicemail server. • Constant Value: "com.android.voicemail.permission.ADD_VOICEMAIL" • DISABLE_KEYGUARD, EXPAND_STATUS_BAR • FLASHLIGHT, GET_PACKAGE_SIZE • KILL_BACKGROUND_PROCESSES • Added in API level 8 • Allows an application to call killBackgroundProcesses(String)

  5. Other permissions. • I skipped over all the “system” permissions. • Says, “Not for use by third-party applications.” in the documentation. • You app must be a system level app, which you can’t do without rooting your phone or becoming a vendor, like say Motorola. • http://stackoverflow.com/questions/14256687/how-to-make-my-application-system

  6. Calendar Example • Once a calendar is connected to the device • You can use the following example from google to read/write to the calendar • Uses the Calendar Provider • http://developer.android.com/guide/topics/providers/calendar-provider.html

  7. Contacts Example • Same with contacts • http://developer.android.com/guide/topics/providers/contacts-provider.html

  8. User Dictionary • Android use the user dictionary for the example in the “content provider basics” example. • http://developer.android.com/guide/topics/providers/content-provider-basics.html

  9. AccountManager • Provides a centralized registry of the user online accounts • Example: Facebook, dropbox, Evernote, etc… • There are some examples of how to use and create your “account” for your online service. • http://www.finalconcept.com.au/article/view/android-account-manager-step-by-step • http://developer.android.com/reference/android/accounts/AccountManager.html

  10. Incoming/outgoing phone calls • Detectcalls app in PremissionDemo.zip • Uses: PROCESS_OUTGOING_CALLS and READ_PHONE_STATE • The example uses two Broadcast Receivers • You can do it in one, but split for the example. • Able to get the phone number and the information. • http://androidlabs.org/short-experiments/broadcast-receivers/process-outgoing-calls/ • This example also shows you have to change the incoming phone number! • http://code.google.com/p/krvarma-android-samples/source/browse/trunk/DetectCalls/?r=37

  11. Incoming/outgoing phone calls (2) • You can block outgoing phone calls • You use: setResultData(null); • That will stop the outbound call! • http://stackoverflow.com/questions/599443/hang-up-outgoing-call-in-android • You can not drop/ignore incoming calls thought. Requires the MODIFY_PHONE_STATE permission, which is a system level permission. • http://stackoverflow.com/questions/15012082/rejecting-incoming-call-in-android • http://androidsourcecode.blogspot.in/2010/10/blocking-incoming-call-android.html

  12. Task lists • RunningApp in the Demo shows how to get the Running Applications. • It’s pretty simple. • Get the ActivityManager from the service • You can get RunningServices, RunningAppProcesses, RunningTasks, and RecentTasks. • My example will list the package name for each one in the list. • Reference: http://stackoverflow.com/questions/5446565/android-how-do-i-check-if-activity-is-running

  13. Reorder Tasks(2) • While facebook, use the reorder_tasks permission, I can’t find a single example for it. • What I did find an interesting article on how all the activities (tasks) work on the back to front of the stack. • And managing how your activities are launched with the launch modes.

  14. WallPaper • Get the intance of the wallpaper manager. • Then use setBitmap,setResource, or setStream methods to change the wallpaper • The example (setwallpaper) is very simple and uses a wallpaper in the resource directory.

  15. Read/Write profile • In JellyBean (Api 14+) you can have several user profiles. • And we have methods to read and write these profiles. • It’s handled through the Contracts, so you will need at least READ_CONTACTS permission as well and READ_PROFILE and WRITE_PROFILE

  16. Read/Write profile • The profile is handled with a ContentProvider. • So to get the entire profile (I think every profile) you need the following query: Cursor c = getContentResolver().query( ContactsContract.Profile.CONTENT_URI, null, null, null, null);

  17. Read profile example • The readPofile project reads all the profiles on the device and displays the information to the screen, using the query before. • Remember the device must be 14+ to use this one. • My example is heavy modified, but based on http://android-codelabs.appspot.com/resources/tutorials/contactsprovider/ex1.html

  18. Q A &

More Related