IMEI einlesen

  • Antworten:15
  • Bentwortet
Johannes
  • Forum-Beiträge: 75

12.03.2012, 20:09:57 via Website

Hy, weiss jemand wie man die IMEI des Gerätes auslesen bzw. in eine variable einlesen kann?
Müssen dafür bestimmte permissions gesetzt werden?
Hat jemand ein Codebeispiel oder ähnliches?

Danke im Vorraus

Lg Johannes

Antworten
Felix
  • Forum-Beiträge: 259

12.03.2012, 20:26:30 via Website

Tach!

Hättest du eine Suchmaschine gefragt, hättest du die Antwort sofort bekommen. Und da ich dir nicht vorlesen will, was ich da bei Google gefunden habe … http://www.google.com/search?q=android+imei


Felix.

Antworten
Johannes
  • Forum-Beiträge: 75

13.03.2012, 06:36:29 via Website

Hy, danke!
Hab jetzt folgenden Code eingebaut
1public String IMEI;
2 public void getIMEI(Context context)
3 {
4
5 TelephonyManager tManager = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
6 IMEI = tManager.getDeviceId();
7 if (IMEI == null)
8 {
9 IMEI = "Nicht vorhanden!";
10
11 }
12
13 }
aber ich krieg keinen Wert nicht einmal "Nicht vorhanden!"

Sieht jemand einen Fehler?

lg

Antworten
Felix
  • Forum-Beiträge: 259

13.03.2012, 08:28:44 via App

Tach!

Hast du auch die notwendige Berechtigung im Manifest hinzugefügt? Außerdem, was sagt das Logcat?


Felix.

— geändert am 13.03.2012, 08:30:20

Antworten
Johannes
  • Forum-Beiträge: 75

13.03.2012, 09:06:19 via Website

Permissions hab ich ihm Mainfest gesetzt, folgendes hab ich rein getan:
1<uses-permission android:name="android.permission.READ_PHONE_STATE" />

Antworten
Thomas L.
  • Forum-Beiträge: 58

13.03.2012, 10:00:16 via Website

und der Logcat ist still?

Ansonsten könntest du ja noch prüfen, ob IMEI leer ist.
1if( IMEI==null || IMEI.equals("")){
2 IMEI="nicht vorhanden!";
3}

Antworten
Johannes
  • Forum-Beiträge: 75

13.03.2012, 14:56:57 via Website

1if( IMEI==null || IMEI.equals(""))
2{
3 IMEI="nicht vorhanden!";
4}

Krieg jetzt so auch noch nicht die IMEI, die permission sollte eigentlich stimmen die funktion ist auch drinnen!

und ich find den fehler nicht

Antworten
Johannes
  • Forum-Beiträge: 75

13.03.2012, 15:27:41 via Website

Ich glaub ich steh gerade so auf der Leitung ich weiss gerade nicht einmal wie ich die Funktion unten aufrufen soll

1package at.woi.app;
2
3import android.app.Activity;
4import android.content.Context;
5import android.os.Bundle;
6import android.telephony.TelephonyManager;
7import android.view.View;
8import android.webkit.WebView;
9import android.widget.Button;
10import android.widget.EditText;
11
12
13
14public class WoiappActivity extends Activity
15{
16 public static String IMEI = "";
17 public void getIMEI(Context context)
18 {
19
20 TelephonyManager tManager = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
21 IMEI = tManager.getDeviceId();
22 if( IMEI==null || IMEI.equals(""))
23 {
24 IMEI="Nicht vorhanden!";
25
26 }
27
28
29 }
30
31 @Override
32 public void onCreate(Bundle savedInstanceState)
33 {
34
35 super.onCreate(savedInstanceState);
36 setContentView(R.layout.main);
37
38 final Button anmelden = (Button) findViewById(R.id.login);
39 final WebView webSend = (WebView) findViewById(R.id.webSend);
40 final EditText number = (EditText) findViewById(R.id.number);
41 final EditText vorwahl = (EditText) findViewById(R.id.area);
42 final EditText email = (EditText) findViewById(R.id.email);
43 email.setText(IMEI);

Antworten
Thomas L.
  • Forum-Beiträge: 58

13.03.2012, 15:47:31 via Website

Da du die Methode als void geschrieben hast würd ichs einfach so machen:

1@Override
2public void onCreate(Bundle savedInstanceState){
3
4 super.onCreate(savedInstanceState);
5 setContentView(R.layout.main);
6
7 getIMEI(this);
8
9 final Button anmelden = (Button) findViewById(R.id.login);
10 ...

Antworten
Johannes
  • Forum-Beiträge: 75

13.03.2012, 15:51:50 via Website

Danke Danke, endlich wieder runter von der Leitung

lg

Antworten
reiti.net
  • Forum-Beiträge: 339

13.03.2012, 16:30:24 via Website

Ich sag's hier nochmal - rein deswegen, weil jemand es nachmachen könnte ohne es zu wissen:

Die IMEI ist nur auf Handies verfügbar, auf keinen anderen Android-Geräten. Die IMEI ändert sich nie und hat mit der SIM Karte selbst nichts zu tun - sie ist fest am Gerät und nur auf diesem Gerät - auch ohne eingelegter SIM Karte. Die IMEI ist sowas ähnliches wie MAC Adresse einer Netzwerkkarte. Sie identifiziert das Gerät (bzw. das Sender/Empfänger Modul).

Ist also gänzlich ungeeignet um irgendwelche benutzerspezifischen Daten zu speichern.

Für Deine Zwecke gibt es ab Android 2.3 folgendes:

android.os.Build.SERIAL

oder

Settings.Secure.ANDROID_ID

bei letzterer gibts aber einen bug auf diversen geräten.

Allen gemeinsam: Sie identifizieren das GERÄT und nicht den Benutzer. Willst du den Benutzer identifizieren, dann nutze seine Telefonnummer oder seinen Google Account.

Solltest du den Benutzer auf diese Weise irgendwas kaufen lassen wollen, beachte bitte, dass das in den meisten Stores nicht erlaubt ist (du musst die Zahlung über den Store abwickeln)

— geändert am 13.03.2012, 16:32:11

Antworten
Johannes
  • Forum-Beiträge: 75

13.03.2012, 16:32:57 via Website

ich will ihn nicht wirklich indendifizieren,
sondern will in damit auf ein gerät beschränken mit seiner nummer, das er die app mit seinen daten nur auf dem erst registrierten betreiben kann

lg

Antworten
Carsten M.
  • Forum-Beiträge: 33.204

13.03.2012, 16:35:58 via App

Und wenn er das Gerät wechselt?

Darf er dann gar nicht mehr seine App nutzen?

Herzliche Grüße

Carsten

Ich komm' mir langsam vor wie jemand, der ich bin // #cäthe

Antworten
Johannes
  • Forum-Beiträge: 75

13.03.2012, 16:38:36 via Website

Für diesen Fall hat er eine E-mail hinterlegt,
und es gibt einen Button zum löschen des accounts bzw. kann er das auch auf der zugehörigen website im nachhinein machen!
Er bekommt dann eine E-mail mit Link zum löschen der IMEI

lg

Antworten
Johannes
  • Forum-Beiträge: 75

13.03.2012, 16:48:06 via Website

Ja find ich auch gut das ihr mir Tipps gebt, aber ich bin jetzt schon so weit drinnen mit der imei geschichte!
Irgendwann gibts sicher einen Fehler(großer Fehler) und dann kann ich die andere Variante/n auch noch probieren

lg

Antworten