Unity(十三) 研究Unity获取Android手机电量、WIFI心得《之二》

----------------------------------------------2021-1-7更新整理完整工程------------------------------------------------------------------

工程下载:https://download.youkuaiyun.com/download/LinZhonglong/14040361  AndoridStudio工程

                  https://download.youkuaiyun.com/download/LinZhonglong/14040316  Unity2018.4.0工程

----------------------------------------------------------------------------------------------------------------------------------------------

 

本文主要完成两个功能,附上完整流程代码,以便后续查看

使用Unity5.6.3    JavaEclipse(Androidsdk同级目录)

ps:已测2017.3通过,需要增加定位权限

 

功能一:Unity应用实现开机自启动 获取电量WIFI等

1:创建项目 File--Android Application Project

2:导入class.jar     BuildPath-->Add External Archieves-->class.jar(使用Unity5.6.3测试)

D:\Program Files\Unity5.6.3\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Classes 

注意工程上方的Package Explorer!选错了就不会有Add External Archieves选项

增加WIFI权限(也可以在Unity里手动增加)

3:代码模块

MainActivity.java

package com.example.getinfo;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import com.unity3d.player.UnityPlayerActivity;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;


public class MainActivity extends UnityPlayerActivity {

	private static Context instance;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        instance = getApplication();
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    //获取手机当前电量、总电量(默认其实都是100)、当前状态(充电还是放电)
    //其余数据例如电压、电池温度用的较少
    public String MonitorBatteryState()
    {
        IntentFilter iFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
        Intent intent = instance.registerReceiver(null, iFilter);
        int rawLevel = intent.getIntExtra("level", 0);      //获得当前电量
        int scale = intent.getIntExtra("scale", 0);         //获得总电量
        int status = intent.getIntExtra("status", 0);       //电池充电状态
        int health = intent.getIntExtra("voltage", 0);      //电池健康状况
        int batteryV = intent.getIntExtra("voltage", 0);    //电池电压(mv)
        int temperature = intent.getIntExtra("temperature", 0); //电池温度(数值)
        double t = temperature / 10.0;  //电池摄氏温度,默认获取的非摄氏温度值,需做一下运算转换
        String targetStr = "";
        int level = -1;
        if(rawLevel > 0 && scale > 0)
        {
            level = (rawLevel * 100) / scale;
            targetStr = level + "|" + scale + "|" + status;
        }
        return targetStr;
    }

    //获取Wifi信号强度
    @SuppressWarnings("deprecation")
    private String ObtainWifiInfo()
    {
        String result = "";
        WifiManager wifiManager = (WifiManager)getApplication().getSystemService(WIFI_S
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值