Hello & bonne année à tous déjà!

Je voudrais pourvoir déterminer:
1.) si un GPS est bien présent sur un device
2.) et si oui, est-il activé (ou pas)?

Pour ce faire j'ai essayé plusieurs fonctions, par exemple:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
	public static boolean isGpsEnabled(Context context) 
	{
	    ContentResolver cr = context.getContentResolver();
	    String providersAllowed = Settings.Secure.getString(cr, Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
	    return providersAllowed != null && providersAllowed.length() > 0;
	}
	public static boolean hasGPSDevice(Context context)
    {
	    final LocationManager mgr = (LocationManager)context.getSystemService(Context.LOCATION_SERVICE);
	    if ( mgr == null ) return false;
	    final List<String> providers = mgr.getAllProviders();
	    if ( providers == null ) return false;
	    return providers.contains(LocationManager.GPS_PROVIDER);
    }
	public static boolean existGPSOnDevice(Context mContext)
	{
		PackageManager packageManager = mContext.getPackageManager();
		boolean  hasGPS = packageManager.hasSystemFeature(PackageManager.FEATURE_LOCATION_GPS);
		return hasGPS;
	}
Le problème étant qu'elles fonctionnent bien sur ma galaxy tab (4.1.1)....... et pas du tout sur nexus 7 (4.1.2).
-> en fait elles renvoient systématiquement TRUE sur la nexus
-> même qd je désactive le GPS!
-> et le pire c que la nexus me ramène qd même des data, même en mettant le gps OFF(??)

Une idée pour tester à la fois la présence physique d'une puce gps & le fait que la fct soit activée ou pas?

Pour le moment, ce qui marche c'est ça:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
	public static boolean existGPS(Context c)
	{
    	String provider = Settings.Secure.getString(c.getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
		if (Fonctions.wildCardMatch(provider, "*gps*")) return true;
		else											return false;
	}
mais bon, une recherche de "gps" dans la string, ça fait un peu bricolage à mes yeux.....

Merci.