Categoryplatform

How to generate unique device id

android device id

At some point of time you will need seamless user/device identification for your application.

It is not so simple to generate unique device id on Android because of:

  1. multiple Android versions
  2. Google bugs
  3. root
  4. custom ROM modifications with bad Build.SERIAL or ANDROID_ID
  5. multiuser support (4.2 and up)

First of all you can start with this:

  1. Google blog post “Identifying App Installations” http://android-developers.blogspot.ru/2011/03/identifying-app-installations.html
  2. Read stack overflow discussions http://stackoverflow.com/questions/2785485/is-there-a-unique-android-device-id
  3. Read Samsung documentation http://developer.samsung.com/android/technical-docs/How-to-retrieve-the-Device-Unique-ID-from-android-device

Be aware that ANDROID_ID could be changed after user switch (multiuser in 4.2)

Continue reading

repo sync problems – Android Eclair

If you have troubles with “repo sync” Android Eclair release (something like “remote end hung up unexpectedly“) – here is a solution!

The problem is that during heavy load repo cannot connect to the server and fails. And you have to start sync from the beginning again and again.

  1. go to the folder where you made “repo init” some days ago
  2. open .repo/repo/subcmds/sync.py
  3. correct _Fetch function (program will try to sync even without network after this change:-)) – add “while True:” at line 6, “break” at line 9, remove “sys.exit(1)” at line 11.
  4. 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
      def _Fetch(self, projects):
        fetched = set()
        pm = Progress('Fetching projects', len(projects))
        for project in projects:
          pm.update()
          while True:
            if project.Sync_NetworkHalf():
              fetched.add(project.gitdir)
              break
            else:
              print >>sys.stderr, 'error: Cannot fetch %s' % project.name
        pm.end()
        return fetched

p.s. be aware – indented matter!

Enjoy.

© 2020 Android Tales

Theme by Anders NorenUp ↑