----------------------------------------------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