2月10日 体温APP开发总结
阅读原文时间:2023年07月08日阅读:4

1、Java代码

1、user

package bean;

public class User {
private String name;
private String riqi;
private String time;
private String space;
private String wen;

public void setName(String name) {
this.name = name;
}

public String getName() {
return name;
}

public void setRiqi(String riqi) {
this.riqi = riqi;
}

public String getRiqi() {
return riqi;
}

public void setTime(String time) {
this.time = time;
}

public String getTime() {
return time;
}

public void setSpace(String space) {
this.space = space;
}

public String getSpace() {
return space;
}

public void setWen(String wen) {
this.wen = wen;
}

public String getWen() {
return wen;
}
public User(String name,String riqi,String time,String space,String wen){
this.name=name;
this.riqi=riqi;
this.time=time;
this.space=space;
this.wen=wen;
}
}
2、dao

package dao;

import android.os.Build;

import androidx.annotation.RequiresApi;

import java.sql.*;
import bean.User;
import util.DBUtil;

public class Dao {
public void add(User user) {
//获得链接对象
Connection connection = DBUtil.getConn("users");
//准备sql语句
String sql = "insert into text(name,riqi,time,space,wen)values(?,?,?,?,?)";
try {
//创建语句传输对象
if(connection!=null) {
PreparedStatement preparedStatement = connection.prepareStatement(sql);
if (preparedStatement != null) {
preparedStatement.setString(1, user.getName());
preparedStatement.setString(2, user.getRiqi());
preparedStatement.setString(3, user.getTime());
preparedStatement.setString(4, user.getSpace());
preparedStatement.setString(5, user.getWen());
preparedStatement.executeUpdate();
preparedStatement.close();
connection.close();
}
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
3、DBUtil

package util;

import java.sql.Connection;
import java.sql.DriverManager;

public class DBUtil{
private static String driver = "com.mysql.jdbc.Driver";// MySql驱动
private static String user = "用户名";
private static String password = "密码";
public static Connection getConn(String dbname){
Connection connection = null;
try{
Class.forName(driver);// 动态加载类
String ip = "本机IP";
// 尝试建立到给定数据库URL的连接
connection = DriverManager.getConnection("jdbc:mysql://" + ip + ":3306/" + dbname, user, password);
}catch (Exception e){
e.printStackTrace();
}
return connection;
}
}
4、main_activity

package com.example.Temper;

import android.Manifest;
import android.app.Activity;
import android.content.pm.PackageManager;
import android.location.Address;
import android.location.Geocoder;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import androidx.core.app.ActivityCompat;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import bean.User;
import dao.Dao;

public class MainActivity extends Activity implements View.OnClickListener {
Button bt_riqi,bt_time,bt_space,bt_insert;
EditText et_name,et_wen;
TextView tv_riqi,tv_riqi0,tv_time,tv_space,tv_tishi;
private static final String[] authBaseArr = {//申请类型
Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.ACCESS_COARSE_LOCATION
};
private static final int authBaseRequestCode = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bt_riqi=(Button)findViewById(R.id.bt_riqi);
bt_time=(Button)findViewById(R.id.bt_time);
bt_space=(Button)findViewById(R.id.bt_space);
bt_insert=(Button)findViewById(R.id.bt_insert);
et_name=(EditText) findViewById(R.id.et_name);
tv_riqi=(TextView)findViewById(R.id.tv_riqi);
tv_riqi0=(TextView)findViewById(R.id.tv_riqi0);
tv_time=(TextView)findViewById(R.id.tv_time);
tv_space=(TextView)findViewById(R.id.tv_space);
et_wen=(EditText) findViewById(R.id.et_wen);
tv_tishi=(TextView)findViewById(R.id.tv_tishi);

    bt\_riqi.setOnClickListener(this);  
    bt\_time.setOnClickListener(this);  
    bt\_space.setOnClickListener(this);  
    bt\_insert.setOnClickListener(this);  
}  

@Override  
public void onClick(View v) {  
    String name=et\_name.getText().toString();  
    String riqi="",time="",space="";  
    String wen=et\_wen.getText().toString();  
    Date date = new Date();  
    SimpleDateFormat simpleDateFormat;  
    switch (v.getId()){  
        case R.id.bt\_riqi:  
            simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");  
            riqi= simpleDateFormat.format(date);  
            tv\_riqi.setText(riqi);  
            break;  
        case R.id.bt\_time:  
            simpleDateFormat = new SimpleDateFormat("HH:mm:ss");  
            time = simpleDateFormat.format(date);  
            tv\_time.setText(time);  
            break;  
        case R.id.bt\_space:  
            LocationManager locationManager = (LocationManager) getSystemService(LOCATION\_SERVICE);  

            initNavi();  

            //权限检查的代码  
            if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS\_FINE\_LOCATION) != PackageManager.PERMISSION\_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS\_COARSE\_LOCATION) != PackageManager.PERMISSION\_GRANTED) {  
                // TODO: Consider calling  
                return;  
            }  
            locationManager.requestLocationUpdates(  
                    LocationManager.GPS\_PROVIDER,//指定GPS定位提供者  
                    1000,//指定数据更新的间隔时间  
                    1,//位置间隔的距离为1m  
                    new LocationListener() {//监听GPS信息是否改变  
                        @Override  
                        public void onLocationChanged(Location location) {//GPS信息发送改变时回调  
                            Log.i("lgq","onLocationChanged===="+location.getProvider());  
                        }  

                        @Override  
                        public void onStatusChanged(String provider, int status, Bundle extras) {//GPS状态发送改变时回调  

                        }  

                        @Override  
                        public void onProviderEnabled(String provider) { //定位提供者启动时回调  

                        }  

                        @Override  
                        public void onProviderDisabled(String provider) { //定位提供者关闭时回调  

                        }  
                    }  
            );  
            Location location = locationManager.getLastKnownLocation(LocationManager.GPS\_PROVIDER);//获取最新的定位信息  
            if (location==null){  
                locationManager.requestLocationUpdates(  
                    LocationManager.NETWORK\_PROVIDER,//指定GPS定位提供者  
                    5000,//指定数据更新的间隔时间  
                    10,//位置间隔的距离为1m  
                    new LocationListener() {//监听GPS信息是否改变  
                        @Override  
                        public void onLocationChanged(Location location) {//GPS信息发送改变时回调  
                            Log.i("lgq","onLocationChanged===="+location.getProvider());  
                        }  

                        @Override  
                        public void onStatusChanged(String provider, int status, Bundle extras) {//GPS状态发送改变时回调  

                        }  

                        @Override  
                        public void onProviderEnabled(String provider) { //定位提供者启动时回调  

                        }  

                        @Override  
                        public void onProviderDisabled(String provider) { //定位提供者关闭时回调  

                        }  
                    }  
                );  
                location = locationManager.getLastKnownLocation(LocationManager.NETWORK\_PROVIDER);//获取最新的定位信息  
            }  
            locationUpdates(location);  
            break;  
        case R.id.bt\_insert:  
            riqi=tv\_riqi.getText().toString();  
            time=tv\_time.getText().toString();  
            space=tv\_space.getText().toString();  
            if(name.equals("")||name==""){  
                tv\_tishi.setText("姓名为空,请输入姓名!");  
            }  
            else if(riqi.equals("")||riqi==""){  
                tv\_tishi.setText("日期为空,请获取日期!");  
            }  
            else if(time.equals("")||time==""){  
                tv\_tishi.setText("时间为空,请获取时间!");  
            }  
            else if(space.equals("")||space==""){  
                tv\_tishi.setText("地点为空,请获取地点!");  
            }  
            else if(space.equals("GPS失效啦!")||space.equals("获取失败!")){  
                tv\_tishi.setText("地点获取失败,请重新获取地点!");  
            }  
            else if(wen.equals("")||wen==""){  
                tv\_tishi.setText("体温为空,请输入体温!");  
            }  
            else {  
                Dao dao = new Dao();  
                User user = new User(et\_name.getText().toString(), tv\_riqi.getText().toString(), tv\_time.getText().toString(), tv\_space.getText().toString(), et\_wen.getText().toString());  
                new Thread(new Runnable() {  
                    @Override  
                    public void run() {  
                        dao.add(user);  
                    }  
                }).start();  
                tv\_tishi.setText("提交成功!");  
            }  
            break;  
    }  
}  

private boolean hasBasePhoneAuth() {  
    PackageManager pm = getPackageManager();  
    for (String auth : authBaseArr) {  
        if (pm.checkPermission(auth, getPackageName()) != PackageManager.PERMISSION\_GRANTED) {  
            return false;  
        }  
    }  
    return true;  
}  

private void initNavi() {  
    // 申请权限  
    if (android.os.Build.VERSION.SDK\_INT >= 23) {  
        if (!hasBasePhoneAuth()) {  
            this.requestPermissions(authBaseArr, authBaseRequestCode);  
            return;  
        }  
    }  
}  

public void locationUpdates(Location location){  
    if(location != null){  
        StringBuilder stringBuilder = new StringBuilder(); //构建一个字符串构建器,用于记录定位信息  
        stringBuilder.append("经度:");  
        stringBuilder.append(location.getLongitude());  
        stringBuilder.append("\\n纬度:");  
        stringBuilder.append(location.getLatitude());  
        String ab = getAddress(location.getLatitude(),location.getLongitude());  
        tv\_space.setText(ab);  
    }  
    else{  
        tv\_space.setText("GPS失效啦!");  
    }  
}  

public String getAddress(double latitude, double longitude) {  
    Geocoder geocoder = new Geocoder(this, Locale.getDefault());  
    try {  
        List<Address> addresses = geocoder.getFromLocation(latitude, longitude, 1);  
        if (addresses.size() > 0) {  
            Address address = (Address) ((List) addresses).get(0);  
            String data = address.toString();  
            int startSpace = data.indexOf("\\"") + ":".length();  
            int endSpace = data.indexOf("\\"", startSpace);  
            String space=data.substring(startSpace,endSpace);  
            return space;  
        }  
    } catch (IOException e) {  
        e.printStackTrace();  
    }  
    return "获取失败!";  
}  

}

2、页面代码


<TextView  
    android:id="@+id/tv\_name"  
    android:layout\_width="wrap\_content"  
    android:layout\_height="wrap\_content"  
    android:layout\_columnSpan = "1"  
    android:layout\_marginLeft="4px"  
    android:gravity="left"  
    android:text="姓名:"  
    android:textSize="30dip"  />  

<EditText  
    android:id="@+id/et\_name"  
    android:layout\_width="320dp"  
    android:layout\_height="wrap\_content"  
    android:layout\_columnSpan = "3"  
    android:layout\_marginLeft="4px"  
    android:gravity="left"  
    android:text=""  
    android:textSize="30dip"  />  

<Button  
    android:id="@+id/bt\_riqi"  
    android:layout\_width="match\_parent"  
    android:layout\_height="wrap\_content"  
    android:layout\_columnSpan="4"  
    android:background="#EE6363"  
    android:text="获取日期"  
    android:textColor="#FFF0F5"  
    android:textSize="26sp" />  

<TextView  
    android:id="@+id/tv\_riqi0"  
    android:layout\_width="wrap\_content"  
    android:layout\_height="wrap\_content"  
    android:layout\_columnSpan = "1"  
    android:layout\_marginLeft="4px"  
    android:gravity="left"  
    android:text="日期:"  
    android:textSize="30dip"  />  

<TextView  
    android:id="@+id/tv\_riqi"  
    android:layout\_width="wrap\_content"  
    android:layout\_height="wrap\_content"  
    android:layout\_columnSpan = "3"  
    android:layout\_marginLeft="4px"  
    android:gravity="left"  
    android:text=""  
    android:textSize="30dip"  />  

<Button  
    android:id="@+id/bt\_time"  
    android:layout\_width="match\_parent"  
    android:layout\_height="wrap\_content"  
    android:layout\_columnSpan="4"  
    android:background="#EE6363"  
    android:text="获取时间"  
    android:textColor="#FFF0F5"  
    android:textSize="26sp" />  

<TextView  
    android:id="@+id/tv\_time0"  
    android:layout\_width="wrap\_content"  
    android:layout\_height="wrap\_content"  
    android:layout\_columnSpan = "1"  
    android:layout\_marginLeft="4px"  
    android:gravity="left"  
    android:text="时间:"  
    android:textSize="30dip"  />  

<TextView  
    android:id="@+id/tv\_time"  
    android:layout\_width="wrap\_content"  
    android:layout\_height="wrap\_content"  
    android:layout\_columnSpan = "3"  
    android:layout\_marginLeft="4px"  
    android:gravity="left"  
    android:text=""  
    android:textSize="30dip"  />  

<Button  
    android:id="@+id/bt\_space"  
    android:layout\_width="match\_parent"  
    android:layout\_height="wrap\_content"  
    android:background="#EE6363"  
    android:layout\_columnSpan="4"  
    android:textColor="#FFF0F5"  
    android:text="获取地点"  
    android:textSize="26sp" />  

<TextView  
    android:id="@+id/tv\_space0"  
    android:layout\_width="wrap\_content"  
    android:layout\_height="wrap\_content"  
    android:layout\_columnSpan = "1"  
    android:layout\_marginLeft="4px"  
    android:gravity="left"  
    android:text="地点:"  
    android:textSize="30dip"  />  
<TextView  
    android:id="@+id/tv\_space"  
    android:layout\_width="270dp"  
    android:layout\_height="wrap\_content"  
    android:layout\_columnSpan = "3"  
    android:layout\_marginLeft="4px"  
    android:gravity="left"  
    android:textSize="30dip" />  

<TextView  
    android:id="@+id/tv\_wen"  
    android:layout\_width="wrap\_content"  
    android:layout\_height="wrap\_content"  
    android:layout\_columnSpan = "1"  
    android:layout\_marginLeft="4px"  
    android:inputType="number"  
    android:gravity="left"  
    android:text="体温:"  
    android:textSize="30dip"  />  

<EditText  
    android:id="@+id/et\_wen"  
    android:layout\_width="320dp"  
    android:layout\_height="wrap\_content"  
    android:layout\_columnSpan = "3"  
    android:layout\_marginLeft="4px"  
    android:gravity="left"  
    android:text=""  
    android:textSize="30dip" />  

<Button  
    android:id="@+id/bt\_insert"  
    android:layout\_width="match\_parent"  
    android:layout\_height="wrap\_content"  
    android:background="#EE6363"  
    android:layout\_columnSpan="4"  
    android:textColor="#FFF0F5"  
    android:text="提交"  
    android:textSize="26sp" />  
<TextView  
    android:id="@+id/tv\_tishi"  
    android:layout\_width="wrap\_content"  
    android:layout\_height="wrap\_content"  
    android:layout\_columnSpan = "4"  
    android:layout\_marginLeft="4px"  
    android:gravity="left"  
    android:text=""  
    android:textSize="30dip" />  

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器