Cocos项目为安卓添加获取手机信号强度和网络类型的功能(JAVA/C++/Lua)

首先是JAVA层:

直接使用Android自带的TelephonyManager 和 ConnectivityManager 都可以获取到 NetworksInfo 对象,可以通过 getType() 获取类型,判断是 “WIFI”还是 “MOBILE”,如果是MOBILE,可以通过 NetworksInfo 对象的 getSubType() 和 getSubTypeName() 可以获取到对于的网络类型和名字。

通过简单地查看Android API即可调用。安卓SDK19暂无对4G网络的强度判断方法。

先声明一些常量:

	//网络状态强度
    public static final int NETLEVEL_STRENGTH_NONE_OR_UNKNOWN = 0;
    public static final int NETLEVEL_STRENGTH_POOR = 1;
    public static final int NETLEVEL_STRENGTH_MODERATE = 2;
    public static final int NETLEVEL_STRENGTH_GOOD = 3;
    public static final int NETLEVEL_STRENGTH_GREAT = 4;
    //定义数组用于返回
    static int[] netInfo = new int[2];
    //信号监听
    TelephonyManager        Tel;  
    MyPhoneStateListener    MyListener; 
    public static int singnalLevel;

    //Wifi监听
    private static WifiInfo wifiInfo = null;
    private static WifiManager wifiManager = null; 
    public static int wifiLevel;
在onCreate()里添加注册监听:

//添加信号强度监听
        MyListener = new MyPhoneStateListener();
        Tel = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
        Tel.listen(MyListener, PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);

        //添加wifi强度监听
        wifiManager = (WifiManager)getSystemService(WIFI_SERVICE);
	}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值