识别调用位置服务的应用程序 - Android位置框架

时间:2012-10-20 13:22:48

标签: android geolocation android-source android-location

在Android平台的某个时刻,我希望识别请求位置更新的应用程序,尽管我意识到这违反了平台的编程逻辑“无上下文”。

我在android位置框架中匆匆忙忙,无法找到将LocationListener标记回应用程序的方法。

是否可以识别实例化特定对象的类或包?

2 个答案:

答案 0 :(得分:0)

您可以执行以下操作:

  1. 转到frameworks/base/services/java/com/android/server/LocationManagerService.java
  2. 中的LocationMangerService.java
  3. 放入适当的位置(例如,放入requestLocationUpdates方法,还放入其他方法)功能Binder.getCallingUid()
  4. 之后你会知道调用应用程序的uid。我希望这会对你有帮助!

答案 1 :(得分:0)

我找到了一个平庸的拼凑而成的答案。 碰巧的是,LocationListener的toString()方法有一个Override,它返回实例化LocationListener对象的应用程序的包名。通过使用它,我目前正在区分应用程序。

但是,我确信必须有一个更优雅的问题解决方案