gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:36:43 29 4
gpt4 key购买 nike

我希望创建一个充当“暖手器”的 Android 应用程序。我正在使用 GPS 调用、振动、手电筒,并且我还使用多个线程在循环中运行代码。电池消耗很高,但还不够。

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

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

最佳答案

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

使用不应影响用户 body 但能够产生热量的技术。

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 服务器,每个服务器都在自己的线程中运行,并且在设备上具有不同的端口。

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

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

声音的:

3 .将5或6个音频文件加载到音频文件中,将其设置为循环然后将音量设置为 0 .播放所有音频。

视频:

4 .加载5或6个动画,将其设置为循环播放。它可能在屏幕上不可见,但只要它正在播放,它就可以正常运行。

视频:

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

传感器:

6 .Enable 加速度计和陀螺仪传感器在更新功能中的每一帧都对其进行轮询。

7 .启用 GPS 并在更新功能中每帧读取轮询。

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

9 .启用前后摄像头,从它们中提取纹理,但什么也不做。

how to reach 40 degrees of heat and stay there?



放在一起 :

将上述所有内容放在一个函数或它自己的类中。

1 .用 int 编写一个简单的类变量称为水平。此级别变量应用于确定应运行上述哪些操作。

2 .app启动时,将level改为 9然后启用/启动上述每种技术。如果温度达到 38 左右,将级别降低到 5 左右。当级别降低时,您将停止运行下面的任何东西,因此在这种情况下,您应该停止轮询加速度计、陀螺仪、GPS、蓝牙和摄像头,然后禁用它们。

3 . 如果温度高于 40,降低水平。如果低于 40,则提高水平。这就是您将温度保持在 ~40 左右的方法度。

4 .更好的是,您可能必须自己制作 PID controller使用上述这些技术。把它做好需要时间,但这可能是解决这个问题的最好方法。

提示 :

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

注意 :

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

关于c# - 如何通过 Unity 将 Android 设备预热到 40 度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42735449/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com