日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android应用从树莓派读取数据

發(fā)布時間:2025/5/22 Android 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android应用从树莓派读取数据 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

activity_main.xml

<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"xmlns:app="http://schemas.android.com/apk/res-auto"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><LinearLayout android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:layout_editor_absoluteX="8dp"tools:layout_editor_absoluteY="8dp"><TextView android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="當(dāng)前光照強(qiáng)度:未知"android:id="@+id/tv_illuminance"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintRight_toRightOf="parent"app:layout_constraintTop_toTopOf="parent" /><Button android:id="@+id/btn_illuminance"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="更新光照強(qiáng)度"tools:layout_editor_absoluteX="141dp"tools:layout_editor_absoluteY="184dp" /><TextView android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="當(dāng)前溫濕度:未知"android:id="@+id/tv_temhum"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintRight_toRightOf="parent"app:layout_constraintTop_toTopOf="parent" /><Button android:id="@+id/btn_temhum"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="更新空氣溫濕度"tools:layout_editor_absoluteX="103dp"tools:layout_editor_absoluteY="143dp" /><TextView android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="當(dāng)前土壤濕度:未知"android:id="@+id/tv_soil"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintRight_toRightOf="parent"app:layout_constraintTop_toTopOf="parent" /><Button android:id="@+id/btn_soil"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="更新土壤濕度"tools:layout_editor_absoluteX="201dp"tools:layout_editor_absoluteY="277dp" /><View android:id="@+id/divider"android:layout_width="match_parent"android:layout_height="1dp"android:background="?android:attr/listDivider"tools:layout_editor_absoluteX="8dp"tools:layout_editor_absoluteY="273dp" /><Button android:id="@+id/btn_hoststate"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="更新主機(jī)運(yùn)行信息"tools:layout_editor_absoluteX="120dp"tools:layout_editor_absoluteY="313dp" /><TextView android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="主機(jī)運(yùn)行狀態(tài):未知"android:id="@+id/tv_hoststate"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintRight_toRightOf="parent"app:layout_constraintTop_toTopOf="parent" /></LinearLayout></android.support.constraint.ConstraintLayout>

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.chenth.httpclient"><uses-permission android:name="android.permission.INTERNET"/><application android:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true"android:theme="@style/AppTheme"><activity android:name=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity></application></manifest>

MainActivity.java

package com.example.chenth.httpclient;import android.os.Handler; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView;import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL;public class MainActivity extends AppCompatActivity {private TextView tv_illuminance;private TextView tv_temhum;private TextView tv_soil;private TextView tv_hoststate;private Button btn_illuminance;private Button btn_temhum;private Button btn_soil;private Button btn_hoststate;private String current_request = null;private String current_url = null;private String string_buff = null;private Handler handler = null;private Thread my_thread = new Thread(new Runnable() {@Overridepublic void run() {while (true) {try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}if (current_url==null){continue;}string_buff = executeHttpGet(current_url);//將受到的數(shù)據(jù)顯示在TextView上if (string_buff != null) {handler.post(runnableUi);}}}});@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initView();handler = new Handler();btn_illuminance.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {current_request = "illuminance";current_url = "http://192.168.12.1/illuminance";}});btn_temhum.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {current_request = "temhum";current_url = "http://192.168.12.1/temhum";}});btn_soil.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {current_request = "soil";current_url = "http://192.168.12.1/soil";}});btn_hoststate.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {current_request = "hoststate";current_url = "http://192.168.12.1/raspberrypistate";}});my_thread.start();}//不能在子線程中刷新UI,應(yīng)為textView是主線程建立的Runnable runnableUi = new Runnable() {@Overridepublic void run() {if (current_request.equalsIgnoreCase("illuminance")) {tv_illuminance.setText(string_buff);}else if (current_request.equalsIgnoreCase("temhum")) {tv_temhum.setText(string_buff);}else if (current_request.equalsIgnoreCase("soil")) {tv_soil.setText(string_buff);}else if (current_request.equalsIgnoreCase("hoststate")) {tv_hoststate.setText(string_buff);}current_request = null;current_url = null;}};public String executeHttpGet(String iUrl) {String result = null;URL url = null;HttpURLConnection connection = null;InputStreamReader in = null;try {url = new URL(iUrl);connection = (HttpURLConnection) url.openConnection();in = new InputStreamReader(connection.getInputStream());BufferedReader bufferedReader = new BufferedReader(in);StringBuffer strBuffer = new StringBuffer();String line = null;while ((line = bufferedReader.readLine()) != null) {strBuffer.append(line);}result = strBuffer.toString();} catch (Exception e) {e.printStackTrace();} finally {if (connection != null) {connection.disconnect();}if (in != null) {try {in.close();} catch (IOException e) {e.printStackTrace();}}}return result.replace("<br>", "\r\n");}private void initView() {tv_hoststate = (TextView) findViewById(R.id.tv_hoststate);tv_illuminance = (TextView) findViewById(R.id.tv_illuminance);tv_temhum = (TextView) findViewById(R.id.tv_temhum);tv_soil = (TextView) findViewById(R.id.tv_soil);btn_hoststate = (Button)findViewById(R.id.btn_hoststate);btn_illuminance = (Button)findViewById(R.id.btn_illuminance);btn_temhum = (Button)findViewById(R.id.btn_temhum);btn_soil = (Button)findViewById(R.id.btn_soil);} }

總結(jié)

以上是生活随笔為你收集整理的Android应用从树莓派读取数据的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。