2012-10-20 79 views
2

在android平臺的某個位置,我希望識別請求位置更新的應用程序,但我意識到這違反了平臺的編程邏輯是「上下文」自由。識別調用位置服務的應用程序 - Android位置框架

我搗亂了android位置框架,並找不到將LocationListener標記迴應用程序的方法。

是否可以確定哪個類或包實例化了特定對象?

回答

0

你可以做到以下幾點:在適當的地方

  1. 轉到LocationMangerService.java在frameworks/base/services/java/com/android/server/LocationManagerService.java
  2. 認沽(例如,到requestLocationUpdates方法,也爲其他的方法)的功能Binder.getCallingUid()

所以之後,你就會知道調用應用程序的uid。我希望這能幫到您!

+0

感謝您的見解!我會嘗試了這一點,並讓你知道,如果它達到必要的結果.. 對不起,這毫無意義評論..一旦我有一些結果,將更新它! –

+0

此方法有效。我測試過了,它按預期工作 –

0

我發現了一個平庸的拼湊類型的答案我的問題。 恰巧,LocationListener的toString()方法有一個Override,它返回實例化LocationListener對象的應用程序的包名。通過使用這個,我目前正在區分這些應用程序。

不過,我敢肯定,必須有一個更優雅的解決問題的方法

相關問題