Telefonie-Manager in Android verwenden, um die IMEI-Nummer zu finden

7

Ich bin sehr neu in der Android-Entwicklung. Ich möchte die IMEI-Nummer des Telefons finden und "android.telephony.TelephonyManager;" verwenden.

%Vor%

Jetzt sagt der Compiler. Der Kontext kann nicht in eine Variable aufgelöst werden. Kann mir irgendjemand helfen? Welchen Schritt vermisse ich Ich habe auch Benutzerrechte in XML aufgenommen.

    
Arsalan 22.09.2011, 11:41
quelle

6 Antworten

14

Bestätigen Sie Ihre Importe, die Sie importieren sollten: android.content.Context ,

Und dann benutze diesen Code:

%Vor%

Oder direkt: benutze das:

%Vor%

BEARBEITEN: * Sie sollten den Kontext an Ihre neue Klasse im Konstruktor übergeben: *

%Vor%

Und in deiner Aktivität, installiere deine Klasse und übermittle den Kontext so:

%Vor%     
Houcine 22.09.2011 11:42
quelle
8

Fügen Sie diesen Code hinzu:

%Vor%

Manifestieren

%Vor%     
Sanket 26.06.2012 07:41
quelle
4

Versuchen Sie es mit einem Code, der Ihnen hilft, die Geräte-IMEI-Nummer zu erhalten.

%Vor%

Geben Sie in Ihrem Manifest auch die Leserechte für den Telefonstatus ein.

%Vor%     
AKSiddique 02.11.2015 05:23
quelle
2

Entfernen Sie einfach Context keyword in Context.TELEPHONY_SERVICE und überprüfen Sie

%Vor%     
Niranj Patel 22.09.2011 11:55
quelle
1

Wenn der Compiler-Fehler "Kontext kann nicht in eine Variable aufgelöst werden", vergewissern Sie sich, dass Sie android.content.Context package importiert haben. In Quick Fixes gibt es Quick Fixes, wenn Sie den Mauszeiger über die Fehlerzeile im Code bewegen.
Stellen Sie sicher, dass Sie READ_PHONE_STATE permission Manifest-Datei hinzugefügt haben.

    
Karthik 22.09.2011 11:55
quelle
0

[Für den Fall, dass noch jemand hier stolpert und nach dieser immer noch alten Lösung sucht]

AFAIK, TelephonyManager.getLine1Number () ist aufgrund verschiedener Einschränkungen von Operatoren nicht zuverlässig. Es gibt einige Java-Reflection-basierte Hacks, die jedoch von Gerät zu Gerät unterschiedlich sind, was diese Hacks irgendwie nutzlos macht [zumindest in Bezug auf unterstützte Modelle]

Aber es gibt eine legitime gesetzmäßige Logik, um die Nummer zu finden, wenn Sie das wirklich brauchen. Abfrage alle SMS von SMS-Anbieter und erhalten Sie die "An" -Nummer.

Zusätzliche Vorteile dieses Tricks: 1. Sie können alle Zeilennummern erhalten, wenn es Multi-SIM im Gerät gibt.

Nachteile: 1. Sie benötigen eine SMS_READ Erlaubnis [Entschuldigung dafür]  2. Sie erhalten alle im Gerät verwendeten SIM-Nummern. Dieses Problem kann mit einer Beschränkungslogik, z.B. Zeitrahmen (SMS empfangen oder gesendet nur heute) usw. Es wäre interessant von anderen zu hören, wie man diesen Fall verbessern kann.

    
Amit K. Saha 07.01.2015 12:00
quelle

Tags und Links