Unity 获取Android 电量

两种方式,一个主动获取,一个被动回调。Unity安卓交互使用之前说到的方式:Unity Android交互

 public int GetBatteryData()
    {
        BatteryManager manager = (BatteryManager)context.getSystemService(BATTERY_SERVICE);
        return  manager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY);///当前电量百分比
    }

主动获取函数,返回的是一个电量的百分比值整数。

 @Override
    public void Init(Context context, CallUnity callback) {
        super.Init(context, callback);
        this.context = context;
        _callBack = callback;
        mBatInfoReveiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                String action = intent.getAction();
                //如果捕捉到的Action是ACTION_BATTERY_CHANGED则运行onBatteryInforECEIVER()
                if(intent.ACTION_BATTERY_CHANGED.equals(action))
                {
                    //获得当前电量
                    intLevel = intent.getIntExtra("level",0);
                    //获得手机总电量
                    intScale = intent.getIntExtra("scale",100);
                    // 在下面会定义这个函数,显示手机当前电量
                    _callBack.FloatCallBack(intLevel/ intScale);
                }
            }
        };

        context.registerReceiver(mBatInfoReveiver, new IntentFilter(
                Intent.ACTION_BATTERY_CHANGED));
    }

注册监听,回调给Unity。

如果主动获取的话,需要再Unity中定时获取一次,比较麻烦。因为我只在程序启动的时候主动获取一次,其他的时候就等待回调。

发布了31 篇原创文章 · 获赞 2 · 访问量 2785

猜你喜欢

转载自blog.csdn.net/BDDNH/article/details/100972922