Hur får man en lista över de (Sensor) sensorer som stödjer
Android app, hur få listan över (sensor) Sensor som stöds av faktiska utrustning?
Hur får man program från Android Sensor, som stöder, gör följande.
Hämtar första hand SensorManager.
SensorManager SM = (SensorManager) getSystemService (SENSOR_SERVICE);
Nästa steg är preliminärt, jag har två sätt, ett är påslagen (föråldrat) utfasats.
Men inte begränsat till Android, säger i allmänhet Java, i princip, har API som deprecated och kommer se till att du inte använder.
Det första steget är att introducera från avsiktligt nedgraderade metoder.
Använd () SensorManager.getSensors.
int sensor = sm.getSensors ();
Returvärdet är av typen int.
Returvärdet, värdet av en stående flagg lite som motsvarar varje sensor som stöd kommer att returneras.
Till exempel om det finns en orienteringssensor mätt med ett uttryck som följande beslut.
if ((sensor och SensorManager.SENSOR_ORIENTATION)! = 0) {
/ / Om detta if, orienteringssensor stöds
}
Anledningen till att ovanstående metod har föråldras, men jag vet inte, jämfört med hur införas senare, och jag tror jag gör inte så bra användarvänlighet.
Följande är den rekommenderade metoden. Det finns en känsla jämfört med icke-rekommenderade versionen var det ser ut som en mer objektorienterad.
Använd () SensorManager.getSensorList.
Listan <sensor> lista = sm.getSensorList (Sensor.TYPE_ALL);
Returvärdet är av typen List Sensor.
Argument anger du vilken sensor du vill få, om du vill få Sensor av allt som stöder anger Sensor.TYPE_ALL som beskrivs ovan.
Förteckning enligt följande: När returvärdet, kan du avgöra om det givaren stöds.
för (Sensor s: lista) {
/ / Till exempel satte en logg namnet på givaren
Log.i (s.getName ());
/ / Om du t.ex. vill logga typ av sensor fråga
Log.i (s.getType ());
}
() Returvärdet, men det är den typ av sensor getType.
Till exempel, om en sensor indikerar orienteringen sensorn, TYPE_ORIENTATION returneras.
Om du vill använda sensorn, jag registrerar också lyssnaren av sensorn.
Sedan dess sätt som mönster och har tagits över, här är den rekommenderade mönster.
Om den första är föråldrat.
Använd () SensorManager.registerListener.
Om du vill registrera alla sensorer stöds, till exempel, är ungefär så här.
int sensor = sm.getSensors ();
sm.registerListener (denna, givare);
Det första argumentet anger den instans som genomför SensorListener.
Det andra argumentet är värdet av summan biten hos sensorn man vill registrera.
Egentligen kallade denna SensorListener gränssnittet i sig, har utfasats.
har utfasats registerListener (), och även denna användning.
Följande är det rekommenderade sättet.
Kommer att använda () SensorManager.registerListener och ovanstående resonemang är annorlunda.
Om du vill registrera alla sensorer stöds, till exempel, är ungefär så här.
Listan <sensor> lista = sm.getSensorList (Sensor.TYPE_ALL);
för (Sensor s: lista) {
sm.registerListener (detta, s);
}
Det första argumentet, snarare än SensorListener, kommer att vara en instans som genomför SensorEventListener.
Det andra argumentet anger den instans typen Sensor registreras.
Evenemanget kommer att meddelas via () onSensorChanged av en instans som genomför SensorEventListener.
Från argument kan du få en instans av typen SensorEvent.
Så denna gång har vi här uppe, med anledning av en annan, med avseende på event-hantering.
Denna artikel, när jag reda på hur du få en lista över tidigare sensor (), som hade varit för (föråldrat), undersöktes från API-referensen är föråldrat SensorManager.getSensors.
Provet kod som har publicerats i böcker och på nätet, kan det ha varit bra med (föråldrat) Deprecated den här gången.
På den tiden, om man tittar på API-referens för Android nu vad som har rekommenderat vilka API? Se så lätt att se det.
API referens som kommer med Android SDK, och se () nedgraderade SensorManager.getSensors, har beskrivits enligt följande.
Detta, och du vet! "Varför ska jag använda (Sensor.TYPE_ALL) getSensorList".
För övrigt, bearbetning av API-referensen Ali, se följande artiklar.
Placeringen av Android API Reference











