2013-05-30 3 views
0

Nous connaissons tous les problèmes GPS sur Android.Comment puis-je activer et désactiver NETWORK_PROVIDER par programme

Comment créer la même fonction TurnOnGps ci-dessous pour un NETWORK_PROVIDER, je veux activer les deux.

private void turnGPSOn(){ 

String provider = Settings.Secure.getString(getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED); 
if(!provider.contains("gps")){  
    final Intent poke = new Intent(); 
    poke.setClassName("com.android.settings","com.android.settings.widget.SettingsAppWidgetProvider");   poke.addCategory(Intent.CATEGORY_ALTERNATIVE); 
    poke.setData(Uri.parse("3"));  
    sendBroadcast(poke); 
} }  

Répondre

0

Heureusement, la technique script-kiddie que vous citez ci-dessus ne fonctionne pas sur les versions modernes d'Android. Vous ne pouvez pas activer ou désactiver vous-même un fournisseur de localisation pour des raisons de confidentialité évidentes. Veuillez autoriser l'utilisateur à activer ou désactiver les fournisseurs de localisation via les mécanismes fournis par le système d'exploitation (Paramètres, widget de l'application Power Control, etc.).

1

Juste ajouter à ce que CommonsWare mentionné, cette méthode ne fonctionne que sur les versions Android de 2.2 et ci-dessous.

Cependant, vous pouvez utiliser le simple, le code ci-dessous:

startActivity(new Intent("android.settings.LOCATION_SOURCE_SETTINGS")); 

Cela prendra directement l'utilisateur à l'écran où ils peuvent activer/désactiver options d'emplacement en fonction.

Référez-here (docs), pour plus de paramètres

Hope this helps

+0

Merci pour l'aide. Mais je voudrais le faire dans le code, sans l'utilisateur. Une autre idée? –

+0

Je suis désolé, mais c'est la seule façon de le faire, autant que je sache, le code que vous fournissiez était juste un petit hack-quoi- qui était un bug dans le 'PowerManager' mais qui était corrigé sur 2.3+, comme CommonsWare a déclaré: "Vous ne pouvez pas activer ou désactiver vous-même un fournisseur de localisation, pour des raisons de confidentialité évidentes." Cela nécessitera une interaction de l'utilisateur, car c'est le choix de l'utilisateur d'activer le GPS ou non. – user959631

Questions connexes