README

April 30, 2012 ยท View on GitHub

 _/_/                                  _/    _/  _/_/_/    _/_/_/  _/_/_/    

/ / /// // /// _/ _/ _/ _/ _/ _/ _/
_/ _/ / / //// _/ _/ _/ _/ _/ _/ _/ _/ _/
_/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ / / /
// //
/ //
/ / / // /// /// //
/
_/
_/

// Created by Victor Vieux on 9/9/11. // Rewrite by Jason Lam on 22/4/12. // Copyright 2012 OpenUDID.net // // iOS / MacOS code: https://github.com/ylechelle/OpenUDID // Android code: https://github.com/vieux/OpenUDID // Android Alternate code: https://github.com/jasonlamkk/OpenUDID (no background service, well control of users permission , compatible to IMEI / BT / WIFI methods) // .Net / SliverLight code: https://github.com/jasonlamkk/OpenUDID.Net // // Contributors: // https://github.com/ylechelle (initiator & iOS code) // https://github.com/samrobbins (Mac OS port) // https://github.com/vieux (Android version) // https://github.com/jasonlamkk (.Net / SliverLight / Android version)

Synopsis: an open source project to provide a universal and persistent Unique Device IDentifier (UDID) solution for Android

Major Changes:

  • (*new) added usage of cross-application shared preferences in PackageContext to feature ensuare consistency of UDID
  • make sure the UDID is consistent across application
  • allow using least permission
  • clearly indicate the source of UDID, e.g. IMEI:/WIFIMAC:/BTMAC:/ANDROID:
  • provide enough fail back for Android2.2 device with invalid ANDROID_ID, no phone, no WiFi, no BlueTooth enviroment
  • include a demo project (the project works for android 1.6+ without BT and 2.1+ with BT)
  • add the concept of internal UDID which protect privacy, make it harder for 3rd party to identify your users' devices

Usage:

  • in OpenUDID.java , configure the values private final static boolean _UseImeiFailback = true;// false if you don't wanna include READ_PHONE_STATE permission //we recommend adding BT permission over READ_PHONE_STATE permission as the will be less privacy concerns private final static boolean _UseBlueToothFailback = true; // false if you don't wanna include BT permission or android 1.6

  • selectively add this to your manifest:

  • Call void OpenUDID.syncContext(getApplicationContext()); ///to initialize the OpenUDID // this version is synchronous
  • Call String OpenUDID.getOpenUDIDInContext(); to retrieve your OpenUDID
  • Call String OpenUDID.getCorpUDID(String corpIdentifier); to retrieve your internal UDID (suggested corpIdentifier can be domain or java package name like com.wavespread)