• 对体温上报app的总结


    设计思路:

    1.界面采用垂直布局

    2.定位采用高德地图sdk

    3.数据存储到sqlite中

    遇到问题:

    1.对布局不知道采用哪种布局方式

    2.无法使用百度地图SDK最后改用高德地图

    3.sqlite数据库链接问题,以及树村存储方式的不明白

    源程序代码:

    1.com.exampl.myapplication:

    package com.example.myapplication;

    import androidx.appcompat.app.AlertDialog;
    import androidx.appcompat.app.AppCompatActivity;

    import android.database.sqlite.SQLiteDatabase;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;

    import com.amap.api.location.AMapLocation;
    import com.amap.api.location.AMapLocationClient;
    import com.amap.api.location.AMapLocationClientOption;
    import com.amap.api.location.AMapLocationListener;



    public class MainActivity extends AppCompatActivity {
    //声明AMapLocationClient类对象
    public AMapLocationClient mLocationClient = null;
    //声明定位回调监听器
    public AMapLocationListener mLocationListener = new MyAMapLocationListener();
    //声明AMapLocationClientOption对象
    public AMapLocationClientOption mLocationOption = null;
    MyOpenHelper openHelper;
    SQLiteDatabase datebase;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Button bt=(Button)findViewById(R.id.button);
    Date date=new Date();
    Time time=new Time();
    final EditText TimeText=findViewById(R.id.editText);//获取时间
    final EditText DateText=findViewById(R.id.editText2);//获取日期
    final EditText TemperatureText=findViewById(R.id.editText5);//获取温度
    final EditText LocationText=findViewById(R.id.editText4);//获取位置信息
    DateText.setText(date.GetDate());
    TimeText.setText(time.GetTime());

    bt.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    String temperature=TemperatureText.getText().toString();
    String date=DateText.getText().toString();
    String time= TimeText.getText().toString();
    String location=LocationText.getText().toString();
    insert(time,date,location,temperature);
    }
    });
    init();

    }
    public void insert(String Time,String Data,String Location,String Temperature){
    openHelper=new MyOpenHelper( this,"demo2.db",null,1);
    datebase=openHelper.getReadableDatabase();
    String sql="insert into demo3 (Time,Date,Location,Temperature) values('"+Time+"','"+Data+"','"+Location+"','"+Temperature+"')";
    datebase.execSQL(sql);
    Log.d("sql:","执行成功");
    datebase.close();
    }
    private void init() {
    //初始化定位
    mLocationClient = new AMapLocationClient(getApplicationContext());
    //设置定位回调监听
    mLocationClient.setLocationListener(mLocationListener);
    //初始化AMapLocationClientOption对象
    mLocationOption = new AMapLocationClientOption();
    //设置定位模式为AMapLocationMode.Hight_Accuracy,高精度模式。
    mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);
    // //获取一次定位结果:
    //该方法默认为false。
    mLocationOption.setOnceLocation(false);

    //获取最近3s内精度最高的一次定位结果:
    //设置setOnceLocationLatest(boolean b)接口为true,启动定位时SDK会返回最近3s内精度最高的一次定位结果。如果设置其为true,setOnceLocation(boolean b)接口也会被设置为true,反之不会,默认为false。
    mLocationOption.setOnceLocationLatest(true);
    //设置是否返回地址信息(默认返回地址信息)
    mLocationOption.setNeedAddress(true);
    //设置是否允许模拟位置,默认为false,不允许模拟位置
    mLocationOption.setMockEnable(false);
    //关闭缓存机制
    mLocationOption.setLocationCacheEnable(false);
    //给定位客户端对象设置定位参数
    mLocationClient.setLocationOption(mLocationOption);
    //启动定位
    mLocationClient.startLocation();

    }

    private class MyAMapLocationListener implements AMapLocationListener {

    @Override
    public void onLocationChanged(AMapLocation aMapLocation) {
    EditText Location=(EditText)findViewById(R.id.editText4);
    Location.setText(aMapLocation.getAddress());
    if (aMapLocation != null) {
    if (aMapLocation.getErrorCode() == 0) {
    Log.e("位置:", aMapLocation.getAddress());
    } else {
    //定位失败时,可通过ErrCode(错误码)信息来确定失败的原因,errInfo是错误信息,详见错误码表。
    Log.e("AmapError", "location Error, ErrCode:"
    + aMapLocation.getErrorCode() + ", errInfo:"
    + aMapLocation.getErrorInfo());
    }
    }
    }
    }
    }
    2.com.example.layout
    <?xml version="1.0" encoding="utf-8"?>
    <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">


    <EditText
    android:id="@+id/editText"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="16dp"
    android:layout_marginTop="54dp"
    android:layout_marginEnd="99dp"
    android:layout_marginBottom="43dp"
    android:ems="10"
    android:inputType="time"
    app:layout_constraintBottom_toTopOf="@+id/editText2"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.5"
    app:layout_constraintStart_toEndOf="@+id/textView2"
    app:layout_constraintTop_toTopOf="parent" />

    <EditText
    android:id="@+id/editText2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:ems="10"
    android:inputType="date"
    app:layout_constraintBottom_toTopOf="@+id/editText4"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.5"
    app:layout_constraintStart_toEndOf="@+id/textView3"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/editText"
    app:layout_constraintVertical_bias="0.23" />

    <TextView
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="32dp"
    android:text="填报时间"
    app:layout_constraintBottom_toBottomOf="@+id/editText"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintEnd_toStartOf="@+id/editText"
    app:layout_constraintHorizontal_bias="0.5"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="@+id/editText"
    app:layout_constraintVertical_bias="0.653" />

    <androidx.constraintlayout.widget.Guideline
    android:id="@+id/guideline"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    app:layout_constraintGuide_begin="20dp" />

    <androidx.constraintlayout.widget.Guideline
    android:id="@+id/guideline2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    app:layout_constraintGuide_begin="20dp" />

    <TextView
    android:id="@+id/textView3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/TextView_3"
    app:layout_constraintBottom_toBottomOf="@+id/editText2"
    app:layout_constraintEnd_toStartOf="@+id/editText2"
    app:layout_constraintHorizontal_bias="0.627"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="@+id/editText2"
    app:layout_constraintVertical_bias="0.538" />

    <androidx.constraintlayout.widget.Guideline
    android:id="@+id/guideline3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    app:layout_constraintGuide_begin="20dp" />

    <TextView
    android:id="@+id/textView5"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="32dp"
    android:layout_marginEnd="10dp"
    android:text="@string/TextView_4"
    app:layout_constraintBottom_toBottomOf="@+id/editText4"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintEnd_toStartOf="@+id/editText4"
    app:layout_constraintHorizontal_bias="0.5"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="@+id/editText4"
    app:layout_constraintVertical_bias="0.692" />

    <EditText
    android:id="@+id/editText4"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="17dp"
    android:layout_marginTop="41dp"
    android:layout_marginEnd="96dp"
    android:layout_marginBottom="446dp"
    android:ems="10"
    android:gravity="start|top"
    android:inputType="textMultiLine"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.5"
    app:layout_constraintStart_toEndOf="@+id/textView5"
    app:layout_constraintTop_toBottomOf="@+id/editText2"
    app:layout_constraintVertical_bias="1.0" />

    <Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="157dp"
    android:layout_marginTop="150dp"
    android:layout_marginEnd="166dp"
    android:layout_marginBottom="319dp"
    android:text="@string/Button_up"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="1.0"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/editText4"
    app:layout_constraintVertical_bias="0.0" />

    <androidx.constraintlayout.widget.Guideline
    android:id="@+id/guideline4"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    app:layout_constraintGuide_begin="20dp" />

    <androidx.constraintlayout.widget.Guideline
    android:id="@+id/guideline5"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    app:layout_constraintGuide_begin="20dp" />

    <TextView
    android:id="@+id/textView7"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginStart="30dp"
    android:layout_marginEnd="22dp"
    android:text="@string/TextView_7"
    app:layout_constraintBottom_toBottomOf="@+id/editText5"
    app:layout_constraintEnd_toStartOf="@+id/editText5"
    app:layout_constraintHorizontal_bias="0.5"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="@+id/editText5" />

    <EditText
    android:id="@+id/editText5"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="39dp"
    android:layout_marginEnd="88dp"
    android:layout_marginBottom="66dp"
    android:ems="10"
    android:inputType="number"
    app:layout_constraintBottom_toTopOf="@+id/button"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toEndOf="@+id/textView7"
    app:layout_constraintTop_toBottomOf="@+id/editText4"
    app:layout_constraintVertical_bias="0.0" />


    </androidx.constraintlayout.widget.ConstraintLayout>
    3.xml
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.myapplication">

    <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>

    <service android:name="com.amap.api.location.APSService" >
    </service>
    <meta-data android:name="com.amap.api.v2.apikey" android:value="76cc235a08ca05de3720a9fe05b70f56">
    </meta-data>

    </application>
    <!--用于进行网络定位-->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
    <!--用于访问GPS定位-->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
    <!--用于获取运营商信息,用于支持提供运营商信息相关的接口-->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
    <!--用于访问wifi网络信息,wifi信息会用于进行网络定位-->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
    <!--用于获取wifi的获取权限,wifi信息会用来进行网络定位-->
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
    <!--用于访问网络,网络定位需要上网-->
    <uses-permission android:name="android.permission.INTERNET"></uses-permission>
    <!--用于读取手机当前的状态-->
    <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
    <!--用于写入缓存数据到扩展存储卡-->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
    <!--用于申请调用A-GPS模块-->
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"></uses-permission>
    </manifest>
  • 相关阅读:
    排序算法-总览
    MySQL插入大批量测试数据
    【剑指offer】面试的流程
    并发编程-内置锁
    并发编程-使用线程安全类
    规约先行-(二十一)设计规约
    规约先行-(二十)服务器
    [转]web.xml什么时候被加载进内存的
    DOM和BOM的理解
    代理&反向代理
  • 原文地址:https://www.cnblogs.com/blog-wangke/p/14409473.html
Copyright © 2020-2023  润新知