首页
社区
课程
招聘
[讨论]关于GPS开关拦截的实现方式
发表于: 2013-12-11 11:36 10706

[讨论]关于GPS开关拦截的实现方式

2013-12-11 11:36
10706
以前我拦截GPS,拦截的是location服务的requestLocationProvider调用;该调用有一个参数是string,里面一般就2个值:"GPS"或者"NET"。当是“GPS”的时候,我就将该调用拦截掉;这样做确实可以拦截应用获取GPS坐标。

但是有个问题就是GPS的开关(就是快捷栏中的)无法控制,用户还能开\关GPS,用户体验不好。

我看了一下GPSLocationProvider的源码,发现开关控制使用handle来实现的,是完全在java层实现的(好像是可以被广播控制),rpc拦截无法拦截,悲剧了~~~~~~~~~

给位大神是否有好的思路,求指导~~~~~~~~~~~~

[峰会]看雪.第八届安全开发者峰会10月23日上海龙之梦大酒店举办!

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 350
活跃值: (27)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
上层UI界面将GPS开关控制去掉不可以么?
2013-12-11 14:12
0
雪    币: 181
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
不可以 我做的是安装版
2013-12-11 15:48
0
雪    币: 53
活跃值: (275)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
如果是handler, 注入后为该handler设置一个callback,在callback中拦截
2013-12-12 22:51
0
雪    币: 181
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
感谢回复

我知道可以替换handler,但前提是你得找到这个handler。Gps的开关在GpsLocationProvider中(应该是,我自己看代码,不特别确定)的enable和disable这2个方法控制。GpsLocationProveider在locationManagerService中。最让人悲伤的是locationManagerService在system_server中的init2线程中以临时变量的形式new出来的:

locationManagerService xxx = new locationManagerService();

这样我在mat中,可以看到locationManagerService对象确实在system_server中,但是我却取不到这个对象,因为我是通过java反射去做的,没有引用,locationManagerService也没有类似于currentInstance或者getInstance这样的静态方法,好无奈啊~~~~~~~
2013-12-13 09:28
0
雪    币: 52
活跃值: (70)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
现在应该知道了吧 ? 说说 是怎么做到的!
学习学习下
   
   映射是怎么的做法?

有教程麽?
2015-7-26 18:54
0
游客
登录 | 注册 方可回帖
返回
//