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

时间:2017-03-11 12:53:44

标签: c# android unity3d unity5

我希望创建一个Android应用程序,它将充当"暖手"。我正在使用GPS呼叫,振动,手电筒,我也使用多个线程在循环中运行代码。电池消耗很高但还不够。

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

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

1 个答案:

答案 0 :(得分:6)

你不需要手电筒或振动器这样做,因为应用程序会让大多数人烦恼,因为这两个人即使在不需要的时候也会打开。

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

  

如何通过C#代码

读取设备温度

在您阅读传感器之前,首先需要检查设备是否有温度计传感器。至于使用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");
  

电池消耗量很高但还不够。

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

亮度

1 。将亮度更改为最高值。现在,禁用自动调暗,以便屏幕指示灯始终亮起。

网络

2 。创建多个(4到5个)TCP服务器,每个服务器都在自己的线程中运行,并且还有设备上的不同端口。

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

在while循环中,随机生成约 13k 浮点数,将其转换为字节数组,然后将其连续发送到每个客户端和服务器。当你收到它时,将该字节数组转换回float,然后对结果一无所知。重复并冲洗。

音频

3 。将 5 6 音频文件载入音频文件,将其设置为循环,然后将音量设置为{{1} }。播放所有音频。

视频:

4 。加载 5 6 动画,将其设置为循环然后播放。它可能在屏幕上看不到,但只要它正在播放,它就可以了。

视频

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

Senors

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

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

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

9 。启用前后摄像头,从中拉出纹理,但不做任何操作。

  

如何达到40度的热量并留在那里?

将它们放在一起

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

1 。使用名为level的0变量编写一个简单的类。应该使用此级别变量来确定应该运行上述哪些操作。

2 。当应用启动时,将级别更改为int,然后启用/启动上述每种技术。如果温度达到 38 附近,则将水平降低到 5 。当水平降低时,你停止运行任何东西,所以在这种情况下,你应该停止轮询加速度计,陀螺仪,GPS,蓝牙和摄像头,然后禁用它们。

3 。如果温度高于 40 ,请降低水平。如果低于 40 ,请增加级别。这就是你将温度保持在9度左右的方法。

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

提示

对于您执行的每项操作,请检查帧速率。如果帧速率低于 6 ,请停止。如果不这样做,Android可能会因为没有响应而终止该应用。

注意

编写一个简单的函数,用于检测comment部分中提到的某些设备。确保此应用不会在这些应用上运行,或者您的“暖手器”应用可能会成为“暖手器&amp;&amp;&amp; amputator ”应用。