文档章节

wifiManager的简单调试

shaula
 shaula
发布于 2016/05/19 17:11
字数 395
阅读 16
收藏 0

log内容:setWifiEnabled:true pid=1556,uid=1000

看这log,基本就是应用程序中调用了wifiManager.setWifiEnabled(true),去framework中查找去吧。

         frameworks/services/java/com/android/server/wifi/WifiService.java

这里查看到LOG输出的地方:

public synchronized boolean setWifiEnabled(boolean enable) {
        enforceChangePermission();
        Slog.d(TAG, "setWifiEnabled: " + enable + " pid=" + Binder.getCallingPid()
                    + ", uid=" + Binder.getCallingUid());
        if (DBG) {
            Slog.e(TAG, "Invoking mWifiStateMachine.setWifiEnabled\n");
        }

        /*
        * Caller might not have WRITE_SECURE_SETTINGS,
        * only CHANGE_WIFI_STATE is enforced
        */

        long ident = Binder.clearCallingIdentity();
        try {
            if (! mSettingsStore.handleWifiToggled(enable)) {
                // Nothing to do if wifi cannot be toggled
                return true;
            }
        } finally {
            Binder.restoreCallingIdentity(ident);
        }

        mWifiController.sendMessage(CMD_WIFI_TOGGLED);
        return true;
    }

        当前不需要注意他是如何实现的,我们的目的获取到入口应用的包名,在WifiService.java中扫一眼,没看到啥能下手的地方。转眼就去了WifiManager.java里面瞅瞅:

     public WifiManager(Context context, IWifiManager service) {

    好了,看到这里我想大家就豁然开朗了吧。

    我们可以拿context做好多事情,譬如getPackageName()、getPackageName()和getPackageName()~

     接下来就在下文的setWifiEnabled()中把获取的包名输出。重新编译了下framework,将生成的framework2.jar、framework2jar、ext.jar push 到手机里面,并自己写了一个wifi开关的小例子查看LOG,简单的改动就实现了谁调这接口就输出谁的包名。

手动点击设置里面的wifi开关也能获取到包名哦!

05-19 14:08:01.102 E/WifiManager( 1333): the_package name is com.android.settings
05-19 14:08:01.102 D/WifiService(  989): setWifiEnabled: false pid=1333, uid=1000

 

                                                                    完!

© 著作权归作者所有

共有 人打赏支持
shaula
粉丝 0
博文 4
码字总数 2755
作品 0
朝阳
程序员
Android获取本机IP地址和MAC的方法

修改AndroidManifest.xml文件增加用户权限,如下。 view plaincopy to clipboardprint? <uses-permission android:name="android.permission.ACCESSWIFISTATE"></uses-permission> <uses-pe......

13号线
2013/02/28
0
0
监听系统网络状态

项目开发过程中,总会涉及到网络请求部分,在每个网络请求前都需要判断网络当前的连接状态。本文总结了Android系统服务ConnectivityManager和WifiManager的常用方法。 关键类: Connectivity...

一剑围城
2017/02/14
0
0
用了WifiManager这么多年,今天才知道彻底用错了

用了WifiManager这么多年,今天才知道彻底用错了 snowdream - Impossible is nothing!2017-11-141 阅读 android 作者:snowdream Email:yanghui1986527#gmail.com Github: https://github.c......

snowdream - Impossible is nothing!
2017/11/14
0
0
Android Wifi获取组播

Android的Wifi,默认情况下是不接受组播的,见:http://developer.android.com/reference/android/net/wifi/WifiManager.MulticastLock.html 默认情况下,应用是不接收组播信息的,这样要接收...

xiahuawuyu
2012/08/06
0
0
在Android中扫描wifi热点演示实例教程

早上发了一段扫描wifi热点的代码,有同学反馈说编译不通过,晚上有点时间,重新试了一下,发现没啥问题,想汇总下测试过程,给需要的人参考。 1、首先新建了布局模板XML文件vifi.xml,代码很简...

长平狐
2012/08/21
155
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

(三)Nginx配置·续

概述 前文写了关于Nginx环境配置,但是还没有完,接下来将会继续讲三个相关的配置 主要是以下三个 1.Nginx访问日志 2.Nginx日志切割 3.静态文件不记录日志和过期时间 Nginx访问日志 1.先看看...

杉下
今天
1
0
jquery创建类似于java的map

var map = {}; // Map map = new HashMap(); map[key] = value; // map.put(key, value); var value = map[key]; // Object value = map.get(key); var has = key in map; // boolean has = ......

SuperDabai
今天
0
0
java大数据转换16进制转10进制

public static void main(String[] args) {String hex = "0xdbf3accc683297cf0000";BigInteger amount = new BigInteger(hex.substring(2), 16);System.out.println(amount);......

任梁荣
昨天
2
0
OSChina 周六乱弹 —— 目测我们程序员丁克的几率不大

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @真Skr小机灵鬼儿:8.13分享Jocelyn Pook/Russian Red的单曲《Loving Strangers》 《Loving Strangers》- Jocelyn Pook/Russian Red 手机党少...

小小编辑
昨天
13
3
TypeScript基础入门 - 函数 - 剩余参数

转载 TypeScript基础入门 - 函数 - 剩余参数 项目实践仓库 https://github.com/durban89/typescript_demo.gittag: 1.2.1 为了保证后面的学习演示需要安装下ts-node,这样后面的每个操作都能...

durban
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部