J'utilise LibGDX pour créer une application de bureau/android. Dans une partie de mon application, je vérifie le capteur de lumière si c'est Android. Cela fonctionne bien pour Android, sauf quand je l'implémente dans mon projet LibGDX Je suis confus quant à la façon dont je peux transmettre ces données.Données de capteur de lumière LibGDX
SensorManager sm;
Sensor s;
float lux = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();
sm = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
s = sm.getDefaultSensor(Sensor.TYPE_LIGHT);
initialize(new MyLibGDXMain(), cfg);
}
@Override
public void onSensorChanged(SensorEvent event) {
lux = event.values[0];
}
je peux récupérer mes données de capteur de lumière ici, mais une fois que je MyLibGDXMain je perds initialiser ces données. Si j'ajoute le SensorEventListener à cette classe, je perds la compatibilité avec la version de bureau. J'ai donc essayé de créer un autre constructeur pour que MyLibGDXMain transmette la valeur lux, mais cela ne casse que ce que fait l'application LibGDX. Cette question n'est pas comment récupérer des données de capteur sur Android mais plutôt Comment est-ce que j'irais obtenir ces données de capteur dans mon principal LibGDX sans casser la compatibilité avec le projet de bureau?
Merci! Will certainement essayer cela bientôt et revenir à vous! Juste quelques questions rapides, et alors je reviendrai pour plus de vous dire si cela a fonctionné ou non. Il me dit d'enlever '@ Override' sur ma méthode' GetCurrentLux() '. Je ne sais pas si c'est quelque chose que j'ai fait mais ça me donne une erreur (ça marche bien si je supprime le override). Deuxièmement, devrais-je créer deux classes distinctes AndroidLightSensor avec le même nom dans mon dossier Android et Desktop? Ou devrais-je appeler le Desktop un DummyAndroidLightSensor? Quelle est la pratique standard pour cela? Je suis tellement contente que j'ai enfin une réelle utilité pour les interfaces. – CodeCamper
Vous voulez également construire mon code de la bonne façon. Dois-je créer un onResume et une onPause séparément dans mon AndroidLightSensor et les transférer dans ma MainActivity? En ce moment j'ai fait un AndroidLightSensor onResume pour enregistrer l'écouteur et ensuite je le passe dans ma MainActivity. Je sais que tout cela est une préférence, mais je cherchais des conseils organisationnels. – CodeCamper
Le "Supprimer @Override" semble étrange. Avez-vous oublié le "implémente LightSensorInterface?Habituellement, il dit seulement que lorsque dans la classe parent que cette classe hérite de ou dans les classes des interfaces, il n'y a pas une telle méthode ... Mais je suppose que si vous le supprimez et ça fonctionne toujours bien c'est ok ...;) Et à droite, vous mettriez le 'LightSensorInterface' dans votre projet principal quelque part. Et dans le projet Android, vous pouvez créer votre 'AndroidLightSensor' et dans votre projet Desktop créer une classe' DummyDesktopLightSensor' ou quoi que ce soit ... – evident