软件总结

今天总算把体温的软件给做出来了,总的来说,在做的过程中遇到了许多的问题,其中对我来说最大的问题不是代码的问题,而是数据库的问题,在写完代码之后我就开始在网上看怎么打开数据库,于是我就尝试着去打开我的sqlite数据库,结果遇到了各种各样的问题,比如:获取data文件夹需要权限,而弄权限则费了我大半天的时间才弄好。最后我才进入了数据库。在进入了数据库后结果发现自己的地址一栏是英文,也就是定位到国外去了,在那之后我用了半天的时间才将手机与电脑相连,经历了获取手机权限与获取data权限的过程。在最后的下午时间段里,我才终于把这个软件搞出来,虽然这个软件并不复杂,可是这也恰好反映出安卓开发的些许问题,以下是我的代码:

package com.example.myapplication;
import android.Manifest;
import android.app.Activity;
import android.content.ContentValues;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;

import androidx.annotation.NonNull;
import androidx.core.app.ActivityCompat;

import com.baidu.location.BDAbstractLocationListener;
import com.baidu.location.BDLocation;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;

import java.util.Date;
public class MainActivity extends Activity {
private shujuku shuju;
public LocationClient myLocationClient = null;
public MyLocationListener myLocationListener;
private static final String TAG = "MainActivity";
private long exitTime = 0; //退出时间变量值
private TextView text;
private TextView add;
private TextView name;
private TextView tiwen;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
shuju=new shujuku(MainActivity.this,"tiwenapp.db",null,1);
havePermission();
registerMyLocationListener();
text=( TextView)findViewById(R.id.date);
add=(TextView)findViewById(R.id.address);
name=( TextView)findViewById(R.id.name);
tiwen=(TextView)findViewById(R.id.tiwen);
text.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v){
Date date = new Date();
String time = date.toLocaleString();
text.setText(time);
}
});
}
private void havePermission() {
if (ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED||
ActivityCompat.checkSelfPermission(MainActivity.this,Manifest.permission.READ_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED){
ActivityCompat.requestPermissions(MainActivity.this,new String[]{
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE
},100);
}
}
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
Log.d(TAG, "onRequestPermissionsResult: requestcode"+requestCode
+" "+permissions.toString()
+" "+grantResults[0]
);
if (grantResults[0]!=0){
Toast.makeText(this, "要开启权限才能用软件哦,不然无法让您更好的体验", Toast.LENGTH_SHORT).show();
this.finish();
}
}
public void showLocation(View view) {
startActivityForResult(new Intent(MainActivity.this, ShowLocationActivity.class),0x78);
}
public void tibia(View view) {
String min=name.getText().toString();
String ti=tiwen.getText().toString();
String time=text.getText().toString();
String address=add.getText().toString();
insertdata(shuju.getReadableDatabase(),min,ti,time,address);
Intent intent = new Intent();
intent.setClass(MainActivity.this,Tijiao.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}
private void insertdata(SQLiteDatabase bd,String name,String ti,String time,String address){
ContentValues v=new ContentValues();
v.put("name",name);
v.put("tiwen",ti);
v.put("date",time);
v.put("address",address);
bd.insert("app",null,v);
}
@Override
protected void onDestroy() {
super.onDestroy();
if(shuju!=null){
shuju.close();
}
}
private void getLocation() {
LocationClientOption option = new LocationClientOption();
option.setScanSpan(1000);
option.setOpenGps(true);
option.setLocationNotify(true);
option.setLocationMode(LocationClientOption.LocationMode.Device_Sensors);
option.setIgnoreKillProcess(false);
option.SetIgnoreCacheException(false);
option.setEnableSimulateGps(false);
option.setIsNeedAddress(true);
option.setIsNeedLocationDescribe(true);
option.setIsNeedLocationPoiList(true);
myLocationClient.setLocOption(option);
myLocationClient.start();
}
public class MyLocationListener extends BDAbstractLocationListener {
public void onReceiveLocation(BDLocation location) {
MyLocationInfo.address = location.getAddrStr();
MyLocationInfo.poiList = location.getPoiList();
}
}
private void registerMyLocationListener() {
myLocationClient = new LocationClient(getApplicationContext());
myLocationListener = new MyLocationListener();
myLocationClient.registerLocationListener(myLocationListener);
getLocation();
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode,resultCode,data);
if(requestCode==0x11 && resultCode==0x11){
Bundle bundle=data.getExtras();
String date=bundle.getString("data");
text.setText(date);
}
if(requestCode==0x78 && resultCode==0x78){
Bundle bundle=data.getExtras();
String date=bundle.getString("address");
add.setText(date);
}
}
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
exit();
return true; //拦截返回键
}
return super.onKeyDown(keyCode, event);
}
public void exit() {
if ((System.currentTimeMillis() - exitTime) > 2000) {
Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show();
exitTime = System.currentTimeMillis();
} else {
finish();
System.exit(0);
}
}
}

原文地址:https://www.cnblogs.com/yitiaokuailedexiaojingyu/p/14369006.html