Yapmak istediğiniz şey, emülatörde test ederken uygulamanız için bir Android cihazındaki sensörleri taklit edecek bir uygulama.
SensorManager mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
Neden yöntemleri Eğer SensorManager kullanmak olan bir arayüze oluşturmaz:
Muhtemelen uygulamanızda, böyle bir çizgi var
interface MySensorManager {
List<Sensor> getSensorList(int type);
... // You will need to add all the methods you use from SensorManager here
}
Sonra SensorManager için bir sarıcı oluşturmak olduğunu sadece gerçek SensorManager nesne üzerinde bu yöntemleri çağırır: ardından
class MySensorManagerWrapper implements MySensorManager {
SensorManager mSensorManager;
MySensorManagerWrapper(SensorManager sensorManager) {
super();
mSensorManager = sensorManager;
}
List<Sensor> getSensorList(int type) {
return mSensorManager.getSensorList(type_;
}
... // All the methods you have in your MySensorManager interface will need to be defined here - just call the mSensorManager object like in getSensorList()
}
Ve başka MySensorManager oluşturmak bu kez commu o
class MyFakeSensorManager implements MySensorManager {
Socket mSocket;
MyFakeSensorManager() throws UnknownHostException, IOException {
super();
// Connect to the desktop over a socket
mSocket = = new Socket("(IP address of your local machine - localhost won't work, that points to localhost of the emulator)", SOME_PORT_NUMBER);
}
List<Sensor> getSensorList(int type) {
// Use the socket you created earlier to communicate to a desktop app
}
... // Again, add all the methods from MySensorManager
}
Ve son olarak, ilk satırı değiştirin:
: Yeni bir satıra ile
SensorManager mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
Eğer sensör değerlerini falan girmek olan bir masaüstü uygulamasına bir soket üzerinden nicates oluşturacağınız
MySensorManager mSensorManager;
if(YOU_WANT_TO_EMULATE_THE_SENSOR_VALUES) {
mSensorManager = new MyFakeSensorManager();
else {
mSensorManager = new MySensorManagerWrapper((SensorManager)getSystemService(SENSOR_SERVICE));
}
Artık, daha önce kullandığınız SensorManager yerine bu nesneyi kullanabilirsiniz.
Merhaba Isaac !! Cevabınız için teşekkürler. Bu, inşa etmek istediğim şey, az ya da çok, bunu deneyeceğim ve hepinizin nasıl ortaya çıktığını anlatayım. =) – Hugo
Merhaba, çözümü hiç uyguladınız mı? Son zamanlarda denedim ve soruna girdim, yeni SensorEvent Nesneleri oluşturmam gerekiyordu, ancak SensorEvent sınıfında son haliyle değerleri ayarlayamıyorum. Bunu yansıma aracılığıyla ayarlayarak bu sorunu çözdüğümde, SensorEvent üzerinde ClassNotFound hatalarım var, – andreas