Sử dụng mã này
boolean hasGps = pm.hasSystemFeature(PackageManager.FEATURE_LOCATION_GPS);
nếu bạn đã phần cứng GPS nhúng cho thiết bị của bạn, nhưng nó không được kích hoạt sau đó sử dụng cá tuyết sau để kích hoạt nó tự động,
LocationManager manager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
if(!manager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
//Ask the user to enable GPS
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Location Manager");
builder.setMessage("Would you like to enable GPS?");
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//Launch settings, allowing user to make a change
Intent i = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivity(i);
}
});
builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//No location service, no Activity
finish();
}
});
builder.create().show();
}
Bạn có thể gọi LocationManager.getAllProviders()
và kiểm tra xem LocationManager.GPS_PROVIDER
có được đưa vào danh sách hay không.
nếu không bạn chỉ cần sử dụng mã này LocationManager.isProviderEnabled(String provider)
.
nếu trả về false ngay cả trong trường hợp nếu bạn don `t có GPS trong điện thoại của bạn
Tôi có một devide không có GPS, nhưng pm.hasSystemFeature (PackageManager.FEATURE_LOCATION_GPS); luôn trả về True – skayred
xem chỉnh sửa và thử – Karthi
LocationManager.isProviderEnabled (Nhà cung cấp chuỗi) trả về false cho máy tính bảng của tôi, điều đó đúng. Nhưng nếu tôi có GPS bị vô hiệu hóa trên thiết bị cầm tay của tôi với sự hỗ trợ GPS, nó sẽ là sai quá. Tôi cần kiểm tra tính khả dụng của phần cứng, không bật trạng thái vô hiệu hóa – skayred