web-dev-qa-db-fra.com

Build.getserial () retourne inconnu sur API 29

Je ne peux pas obtenir série sur Android 10 périphérique.

Je connais tout (permission, autorisations d'exécution, je reçois une série de séries seulement après l'octroi de la permission) d'ici Android Build.GetSerial () Lancer une exception

Mon code fonctionne sur tous Android versions, sauf 10

Avez-vous des idées?

6
Dmitry Zinoviev

Si vous suivez la documentation officielle ici: https://developer.android.com/reference/andrroid/os/build.html#getserial () , Plus d'informations sur Android 10 modifications ici

Vous remarquerez qu'à partir de Android 10 Cette méthode renvoie build.unknown . Vous ne pouvez plus l'utiliser pour identifier de manière unique un seul appareil

Vous devez passer à la version persistante "moins" appelée Paramètres.secure.androd_id

Les seuls moyens de contourner cette restriction sont les suivants:

  1. Créez une application système pour pouvoir obtenir la permission du système READ_PRIVILEGED_PHONE_STATE (une application normale ne peut pas l'obtenir).
  2. Être enregistré en tant que transporteur (ce qui nécessite que vous ayez construit la ROM Android)
  3. Avoir un "profil de travail" personnalisé pour définir vos propres stratégies dans l'appareil.

Comme vous pouvez l'imaginer, toutes ces options ne sont pas destinées à être utilisées par les développeurs d'applications Standard Android.

7
MatPag