diff options
-rw-r--r-- | services/sensorservice/SensorService.cpp | 7 | ||||
-rw-r--r-- | services/sensorservice/SensorService.h | 5 |
2 files changed, 8 insertions, 4 deletions
diff --git a/services/sensorservice/SensorService.cpp b/services/sensorservice/SensorService.cpp index c9b0f7c..cc2f745 100644 --- a/services/sensorservice/SensorService.cpp +++ b/services/sensorservice/SensorService.cpp @@ -383,7 +383,8 @@ Vector<Sensor> SensorService::getSensorList() 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; } @@ -553,8 +554,8 @@ bool SensorService::SensorRecord::removeConnection( // --------------------------------------------------------------------------- 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) { } diff --git a/services/sensorservice/SensorService.h b/services/sensorservice/SensorService.h index 54a76e8..18591bf 100644 --- a/services/sensorservice/SensorService.h +++ b/services/sensorservice/SensorService.h @@ -77,13 +77,14 @@ class SensorService : 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); @@ -91,6 +92,8 @@ class SensorService : bool hasAnySensor() const; bool addSensor(int32_t handle); bool removeSensor(int32_t handle); + + uid_t getUid() const { return mUid; } }; class SensorRecord { |