Tôi thấy rằng chúng tôi có các lớp dành cho CDMACellLocation và GSMCellLocation, nhưng không có gì cụ thể cho LTE. Tôi có thể nhận vị trí ô di động LTE cụ thể cho ngữ cảnh dịch vụ điện thoại của mình không? Cảm ơn!cách nhận vị trí ô LTE trong Android?
Trả lời
Bạn có thể lặp qua danh sách danh sách trả về bởi getAllCellInfo() và kiểm tra xem CellInfo là một CellInfoLte hay không bằng cách
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
}
}
Điều này không trả lời được câu hỏi. Một khi bạn có một đối tượng CellInfoLte, làm thế nào để bạn có được thông tin vị trí? – DataDino
Hãy cẩn thận ở đây - Mặc dù các API có thể cung cấp một giao diện để biết tế bào, nó thực sự phụ thuộc vào người vận chuyển. Không giống như CDMA có thể cung cấp thông tin vị trí khóa học như là một phần của đầu ra RADIUS của nó, LTE thay đổi theo cách thực hiện. Chỉ có mức "thấp hơn" của mạng LTE biết bạn có thể ở đâu, và điều đó là mờ nhất. Nếu không biết cơ sở hạ tầng của nhà cung cấp dịch vụ của bạn, MME hoạt động như thế nào, bạn có thể nhận được thông tin, nhưng tôi không tin vào thông tin vị trí địa lý.
Ngoài ra, tùy thuộc vào cách cuộc thăm dò của nhà cung cấp dịch vụ của bạn. Tùy thuộc vào cấu hình thiết bị, bạn có thể được thăm dò ý kiến mỗi phút một lần, cứ năm phút một lần, cứ sau hai giờ một lần. Nếu bạn đang chuyển vùng, bạn có thể không nhận được gì ngoài rác vì không có tiêu chuẩn tốt cho các giá trị.
bạn có thể lấy thông tin từ kết nối LTE, với một dàn diễn viên cụ thể trên các phiên bản thuộc danh sách của CellInfo.
MobileInfoRecognizer mobileInfoRecognizer = new MobileInfoRecognizer();
TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
List<CellInfo> cellInfos = tm.getAllCellInfo();
additional_info = mobileInfoRecognizer.getCellInfo(cellInfos.get(0));
Trong ứng dụng của tôi, tôi nhận thấy rằng bạn có thể chỉ mất phần tử đầu tiên trong danh sách của bạn; Tôi chỉ cho bạn lớp tùy chỉnh của tôi:
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;
}
}
Vì vậy, nếu thiết bị được thử nghiệm không hỗ trợ LTE, bạn luôn có thể có được thông tin liên quan khác về kết nối của thiết bị. Hy vọng bạn có thể tìm thấy nó hữu ích.
- 1. Cách nhận vị trí GPS Android
- 2. Cách nhận vị trí hiện tại trong Android
- 3. Nhận vị trí của người dùng Android
- 4. Android - Chỉ nhận vị trí một lần
- 5. Nhận vị trí GPS qua dịch vụ trong Android
- 6. Nhận vị trí trong ListView
- 7. Java POI: Cách tìm ô Excel có giá trị chuỗi và nhận vị trí (hàng) để sử dụng vị trí đó để tìm ô khác
- 8. Android: làm cách nào để có được chi tiết vị trí 50 ô (tháp) cuối cùng?
- 9. Android nhận vị trí hoặc nhắc bật dịch vụ vị trí nếu bị tắt
- 10. Nhận Bàn phím Vị trí Con trỏ Bàn phím Android
- 11. Android RelativeLayout - cách đặt vị trí?
- 12. Dừng trình nghe vị trí trong Android
- 13. Lấy khoảng cách giữa hai vị trí trong android?
- 14. Android: Chỉ nhận vị trí gần đây, không getLastKnownLocation?
- 15. Sửa vị trí tuyệt đối trong Android
- 16. Cách tính từ vị trí của tôi đến vị trí đích trong android
- 17. thay đổi vị trí của detailtextlabel trong ô?
- 18. Nhận vị trí hàng trong onCreateContextMenu
- 19. Vị trí của DialogFragment trong Android
- 20. Nhận vị trí chuột trong div?
- 21. Nhận vị trí của JPopupMenu
- 22. jquery xác nhận vị trí
- 23. LTE-CIVIL UnsatisfiedLinkError trong Eclipse
- 24. nhận khoảng cách giữa Vị trí hiện tại và Địa điểm đã chọn trong android
- 25. cách nhận vị trí nhấp chuột trong onClickListener?
- 26. cách nhận vị trí hiện tại trong FragmentPagerAdapter?
- 27. Cách nhận vị trí địa lý của tôi trong bash
- 28. Cách lưu và khôi phục vị trí ListView trong Android
- 29. Cách tải vị trí tệp cấu hình wifi trong android
- 30. Cách định kỳ tìm vị trí gps trong Android
Bạn chỉ có thể nhận thông tin LTE trong API 17 –
Cảm ơn bạn đã trả lời! Tôi đang trên API 17. Những gì tôi muốn biết là làm thế nào để có được extarct CellInfo từ arraylist trả về bởi hàm GetAllCellInfo() của TelephonyManager. – user1985703