sp<ISensorEventConnection> SensorService::createSensorEventConnection()
{
- sp<SensorEventConnection> result(new SensorEventConnection(this));
+ uid_t uid = IPCThreadState::self()->getCallingUid();
+ sp<SensorEventConnection> result(new SensorEventConnection(this, uid));
return result;
}
// ---------------------------------------------------------------------------
SensorService::SensorEventConnection::SensorEventConnection(
- const sp<SensorService>& service)
- : mService(service), mChannel(new BitTube())
+ const sp<SensorService>& service, uid_t uid)
+ : mService(service), mChannel(new BitTube()), mUid(uid)
{
}
sp<SensorService> const mService;
sp<BitTube> const mChannel;
+ uid_t mUid;
mutable Mutex mConnectionLock;
// protected by SensorService::mLock
SortedVector<int> mSensorInfo;
public:
- SensorEventConnection(const sp<SensorService>& service);
+ SensorEventConnection(const sp<SensorService>& service, uid_t uid);
status_t sendEvents(sensors_event_t const* buffer, size_t count,
sensors_event_t* scratch = NULL);
bool hasAnySensor() const;
bool addSensor(int32_t handle);
bool removeSensor(int32_t handle);
+
+ uid_t getUid() const { return mUid; }
};
class SensorRecord {