Ich sehe, dass wir Klassen für CDMACellLocation und GSMCellLocation haben, aber es gibt nichts Spezifisches für LTE. Kann ich den Standort der LTE-Zelle für den Kontext meines Telefoniedienstes spezifisch festlegen? Danke! Obwohl die API eine Schnittstelle für die Zelleninformationen kann liefern -Wie bekomme ich LTE-Zellstandort in Android?
Antwort
Sie können durch die Liste Liste von getAllCellInfo() und prüfen, ob das Cell ein CellInfoLte ist oder nicht durch
TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
List<CellInfo> cellInfoList = tm.getAllCellInfo();
for (CellInfo cellInfo : cellInfoList)
{
if (cellInfo instanceof CellInfoLte)
{
// cast to CellInfoLte and call all the CellInfoLte methods you need
}
}
Dies beantwortet die Frage nicht. Sobald Sie ein CellInfoLte-Objekt haben, wie erhalten Sie die Standortinformationen? – DataDino
Seien Sie vorsichtig, hier zurücklaufen es hängt wirklich vom Träger ab. Im Gegensatz zu CDMA, das Informationen zum Kursstandort als Teil seiner RADIUS-Ausgabe bereitstellen kann, variiert LTE durch die Implementierung. Nur die "unteren" Ebenen des LTE-Netzwerks wissen, wo Sie sind, und das ist bestenfalls unscharf. Ohne die Infrastruktur Ihres Carriers zu kennen, wie Ihre MME funktioniert usw., erhalten Sie vielleicht Informationen, aber ich würde ihnen für Geo-Location-Informationen nicht vertrauen.
Außerdem hängt es davon ab, wie Ihr Träger abfragt. Je nach Geräteprofil können Sie einmal pro Minute, einmal alle fünf Minuten, einmal alle zwei Stunden eine Abfrage durchführen. Wenn Sie herumstreunen, können Sie nichts als Müll bekommen, da es keinen schönen Standard für Werte gibt.
können Sie Informationen aus der LTE-Verbindung mit einer bestimmten Umwandlung von Instanzen abrufen, die zur CellInfo-Liste gehören.
MobileInfoRecognizer mobileInfoRecognizer = new MobileInfoRecognizer();
TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
List<CellInfo> cellInfos = tm.getAllCellInfo();
additional_info = mobileInfoRecognizer.getCellInfo(cellInfos.get(0));
In meiner Anwendung habe ich festgestellt, dass Sie nur das erste Element in Ihrer Liste nehmen können; Ich zeige Ihnen meine eigene Klasse:
public class MobileInfoRecognizer {
public String getCellInfo(CellInfo cellInfo) {
String additional_info;
if (cellInfo instanceof CellInfoGsm) {
CellInfoGsm cellInfoGsm = (CellInfoGsm) cellInfo;
CellIdentityGsm cellIdentityGsm = cellInfoGsm.getCellIdentity();
additional_info = "cell identity " + cellIdentityGsm.getCid() + "\n"
+ "Mobile country code " + cellIdentityGsm.getMcc() + "\n"
+ "Mobile network code " + cellIdentityGsm.getMnc() + "\n"
+ "local area " + cellIdentityGsm.getLac() + "\n";
} else if (cellInfo instanceof CellInfoLte) {
CellInfoLte cellInfoLte = (CellInfoLte) cellInfo;
CellIdentityLte cellIdentityLte = cellInfoLte.getCellIdentity();
additional_info = "cell identity " + cellIdentityLte.getCi() + "\n"
+ "Mobile country code " + cellIdentityLte.getMcc() + "\n"
+ "Mobile network code " + cellIdentityLte.getMnc() + "\n"
+ "physical cell " + cellIdentityLte.getPci() + "\n"
+ "Tracking area code " + cellIdentityLte.getTac() + "\n";
} else if (cellInfo instanceof CellInfoWcdma){
CellInfoWcdma cellInfoWcdma = (CellInfoWcdma) cellInfo;
CellIdentityWcdma cellIdentityWcdma = cellInfoWcdma.getCellIdentity();
additional_info = "cell identity " + cellIdentityWcdma.getCid() + "\n"
+ "Mobile country code " + cellIdentityWcdma.getMcc() + "\n"
+ "Mobile network code " + cellIdentityWcdma.getMnc() + "\n"
+ "local area " + cellIdentityWcdma.getLac() + "\n";
}
return additional_info;
}
}
Also, wenn das Gerät im Test nicht LTE nicht unterstützt, können Sie immer andere Informationen über seine Verbindung erhalten. Hoffe, dass Sie es nützlich finden können.
- 1. Wie bekomme ich Android-Absturzprotokolle?
- 2. Wie bekomme ich ein Unterverzeichnis in Android?
- 3. Wie bekomme ich Browser-Verlauf in Android?
- 4. Wie bekomme ich "onTouchEnd" Event in Android?
- 5. Wie bekomme ich Bildschirmbreite dpi in ANDROID?
- 6. Wie bekomme ich GUID in Android?
- 7. Wie bekomme ich Facebook Profilbild in Android
- 8. Wie bekomme ich meine Android-Fingerabdruck-Zertifikat in Android Studio
- 9. Wie bekomme ich Android Local Service Instanz
- 10. Wie bekomme ich Android Crash Logs?
- 11. Wie bekomme ich CheckBox von ListView Android?
- 12. Wie bekomme ich Dateipfad auf Android?
- 13. Wie bekomme ich Android Studio zu arbeiten?
- 14. Android Wie bekomme ich Künstler Art (Foto)
- 15. Wie bekomme ich Android auf Texteingabe warten?
- 16. Wie bekomme ich die dynamische Rasteransicht Android?
- 17. Wie bekomme ich WhatsApp Kontakte von Android?
- 18. Wie bekomme ich Android Kompass lesen?
- 19. Wie bekomme ich App-Installationszeit von Android
- 20. Wie bekomme ich Android Soft Tastatur Höhe?
- 21. Wie bekomme ich MMS-ID Android-Anwendung
- 22. Wie bekomme ich Daten vom Android Service?
- 23. Ich bekomme Fehler in getView() in Android?
- 24. Wie bekomme ich eine Soundcloud wie Wellenformen in Android
- 25. Wie bekomme ich Yoga-Orte in meiner Nähe in Android?
- 26. Wie bekomme ich die aktuelle Datumzeit in Millisekunden in Android
- 27. Wie bekomme ich Facebook Session in zweiter Aktivität in Android?
- 28. Wie bekomme ich Checkbox-Status in erweiterbare Listview in Android
- 29. Wie bekomme ich die Dateinamen in SD-Karte in Android
- 30. Wie bekomme ich CheckBox-Wert in RadioGoup in Android?
Sie können die LTE-Informationen nur in API 17 erhalten –
Danke für die Antwort! Ich bin auf API 17. Was ich wissen wollte, war, wie man die CellInfo von der Arraylist, die von der getAllCellInfo() Funktion des TelephonyManager zurückgegeben wurde, extarct. – user1985703