如何通过 Unity 将 Android 设备预热到 40 度?

How to warm up Android device to 40 degrees via Unity?

我想创建一个 Android 应用程序作为 "hand warmer"。我正在使用 GPS 呼叫、振动、手电筒,我还在循环中使用多个线程 运行 代码。电池消耗很高,但还不够。

当我使用这个应用程序时,从 25 度到 33 度大约需要 10 分钟。我的目标是在尽可能短的时间内达到 40 度。

那么,如何通过 C# 代码读取设备温度,以及如何达到 40 度的热量并保持在那里?

您不需要手电筒或振动器来执行此操作,因为该应用程序对大多数人来说都很烦人,因为即使不需要,这两者也会打开。

使用不应影响用户身体但会产生热量的技术。

how can I read the device temp via C# code

在读取传感器之前,您首先需要检查设备是否有温度计传感器。至于用 C# 从 Android 读取传感器,你必须用 Java 代码编写它,然后从 C# 调用该函数。

您可以为此使用已经制作好的 Unity-Android-Sensor-Plugin 插件。

private AndroidJavaObject plugin;

void Start ()
{
#if UNITY_ANDROID
    plugin = new AndroidJavaClass("jp.kshoji.unity.sensor.UnitySensorPlugin").CallStatic<AndroidJavaObject>("getInstance");

    //Init the ambienttemperature sensor
    if (plugin != null) 
    {
        plugin.Call("startSensorListening", "ambienttemperature");
    }
#endif
}

稍后在更新函数中读取环境温度传感器:

float[] sensorValue = plugin.Call<float[]>("getSensorValues", "ambienttemperature");

Battery consumption is high but it is not enough.

这些是用来加热您的移动设备的技术。

亮度:

1.将亮度调到最高值。现在,禁用自动调暗,使屏幕 LED 始终发光。

网络:

2。创建多个(4 到 5 个)TCP 服务器,每个服务器 运行 在它们自己的线程中以及设备上的不同端口。

现在,创建 the-same 数量的 TCP 客户端并使用端口和 IPAddress.Loopback 作为 IP 连接到服务器。

在一个while循环中,随机生成约13k个浮点数,转换为字节数组,不断发送给各个客户端和服务器。当您收到它时,将该字节数组转换回浮点数,然后对结果完全不做任何事情。重复并冲洗。

音频:

3.加载56音频文件到音频文件,设置它循环然后将音量设置为 0。播放所有音频。

视频:

4.加载56动画,设置为循环播放.它可能在屏幕上不可见,但只要它在播放,它就可以。

视频:

5。使用 Unity 的新 VidepPlayer 加载 3 个视频,禁用音频,将视频连接到 RawImage。将其他 RawImage 的 alpha 设置为 0,使其不可见。播放视频并让解码完成工作。

传感器:

6。启用加速度计和陀螺仪传感器在更新功能中每帧轮询它。

7。启用 GPS 并在更新函数中读取每一帧轮询。

8。启用蓝牙并每秒持续搜索其他设备。

9。启用前置和后置摄像头,从中提取纹理,但不对其进行任何操作。


how to reach 40 degrees of heat and stay there?

放在一起:

将上述所有内容放入一个函数或其自身 class。

1。写一个简单的 class 和一个名为 level 的 int 变量。此级别变量应用于确定上述哪些操作应 运行ning.

2。当应用程序启动时,将级别更改为 9,然后 enable/start 上述每种技术。如果温度达到 38 左右,请将级别降低到 5 左右。当级别降低时,你停止 运行ning 运行ning 下面的任何东西,所以在这种情况下,你应该停止轮询加速度计、陀螺仪、GPS、蓝牙和相机,然后禁用它们。

3。如果温度高于40,降低级别。如果低于40,提高等级。这就是将温度保持在 ~40 度左右的方法。

4。甚至更好的是,您可能必须制作自己的 PID controller 并使用上述技术。做对需要时间,但这可能是最好的方法。

提示:

对于您所做的每件事,请检查帧速率。如果 frame-rate 低于 6,停止。如果不这样做,Android 可能会因为没有响应而终止应用程序。


注意:

编写一个简单的函数来检测 comment 部分中提到的某些特定设备。请确保此应用不会 运行 在这些应用上,否则您的“暖手器”应用可能会变成“暖手器和截肢器” “ 应用程序。