locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
//getting GPS status
isGPSEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
//getting network status
isNetworkEnabled = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
i Marshmallow kontrol Her ne kadar ikisi de yanlıştır, çalışma zamanı izinleri gibi bir şey var, bu yüzden bu bağlantılar link1 ve link2Android Zefir, hep locationManager.isProviderEnbled return false
izledi Ve bazı hata ayıklama yaptım ve koyarak isNetworkEnabled önce checkSelfPermission(android.Manifest.permission.ACCESS_FINE_LOCATION);
olan 0 döndürür PERMISSION_GRANTED
Kod
public class SplashScreenActivity extends Activity {
private static final String TAG = "SplashScreenActivity";
boolean isGPSEnabled = false;
// flag for network status
boolean isNetworkEnabled = false;
final private int REQUEST_CODE_ASK_PERMISSIONS = 123;
@TargetApi(Build.VERSION_CODES.M)
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.activity_splashscreen);
int hasLocationPermission = checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION);
if (hasLocationPermission != PackageManager.PERMISSION_GRANTED) {
requestPermissions(new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
REQUEST_CODE_ASK_PERMISSIONS);
return;
}
//comes till here . ie hasLocationPermission is true
LocationManager locationManager = (LocationManager) getApplicationContext().getSystemService(LOCATION_SERVICE);
checkSelfPermission(android.Manifest.permission.ACCESS_FINE_LOCATION); //breakpoint at this line gives 0 ie PERMISSION_GRANTED
isGPSEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER); //false at debug breakpoint
isNetworkEnabled = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);//false at debug breakpoint
}
}
Manifest
Bunu nerede yürütüyorsunuz? Bir emülatörde veya gerçek bir cihazda mı? Gerçekse, lütfen durumu belirtin: Model, Oluştur (OS sürümü ve derleme numarası) ve ilgili olabilecek herhangi bir logcat .... Muhtemelen 2 farklı etkinliğe sahip olmanız veya 1'in izinleri olan whatever'larınız var demektir ve 1'i değil. .. Ayrıca '' ınWriterContactsPermission' için GPS kontrol kötü bir uygulamadır ... başka bir kişinin okuyabilir ve bu değişkenin ne olduğunu EXACTLY anlayabileceği isimleri kullanın .... aynı Build.VERSION.SDK_INT> = 23 geçerlidir [chek this ] (http://stackoverflow.com/questions/47882/what-is-a-magic-number-and-why-is-it-bad) – Bonatti
Lütfen bunu bir kez kontrol edin. http://stackoverflow.com/questions/16748300/locationmanager-isproviderenabledlocationmanager-network-provider-is-not-relia?lq=1 –
@Bonatti bunu cihazda yürüten hasLocationPermission öğesine güncelledi: Samsung Edge 6, android M, android ver 6.0.1 build # MMB29K.G925IDVU3EPC5, burada http://pastebin.com/9WstqwL1 günlüğe kaydeder, ancak hata ayıklama ile ben bu sorunun locationManager.isProviderEnabled olduğunu belirtebilirim sadece –