Compare commits
2 Commits
Author | SHA1 | Date |
---|---|---|
|
2cf484ec22 | 3 years ago |
|
6bd22eba89 | 3 years ago |
@ -1,3 +1,2 @@
|
|||||||
# gitproject
|
# gitproject
|
||||||
# 该系统为老人生活小助手系统,主要由一键通,天气预测,找寻,语音识别四个模块构成,有效迅速的解决了老人日常生活中遇到的许多麻烦,帮助老人在日常生活中生活的更加方便。同时填补了目前市场上的空白。
|
|
||||||
# 此软件构建在andorid 7.0及以上的系统中
|
|
||||||
|
Before Width: | Height: | Size: 65 KiB |
Before Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 90 KiB |
Before Width: | Height: | Size: 62 KiB |
Before Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 186 KiB |
Before Width: | Height: | Size: 252 KiB |
Before Width: | Height: | Size: 78 KiB |
Before Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 129 KiB |
Before Width: | Height: | Size: 151 KiB |
Before Width: | Height: | Size: 98 KiB |
Before Width: | Height: | Size: 55 KiB |
Before Width: | Height: | Size: 112 KiB |
Before Width: | Height: | Size: 40 KiB |
Before Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 284 KiB |
Before Width: | Height: | Size: 56 KiB |
Before Width: | Height: | Size: 107 KiB |
Before Width: | Height: | Size: 284 KiB |
Before Width: | Height: | Size: 106 KiB |
Before Width: | Height: | Size: 49 KiB |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 7.7 KiB |
@ -1,117 +0,0 @@
|
|||||||
package com.example.myapplication;
|
|
||||||
|
|
||||||
import org.json.JSONArray;
|
|
||||||
import org.json.JSONObject;
|
|
||||||
import org.json.JSONTokener;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Json结果解析类
|
|
||||||
*/
|
|
||||||
public class JsonParser {
|
|
||||||
|
|
||||||
public static String parseIatResult(String json) {
|
|
||||||
StringBuffer ret = new StringBuffer();
|
|
||||||
try {
|
|
||||||
JSONTokener tokener = new JSONTokener(json);
|
|
||||||
JSONObject joResult = new JSONObject(tokener);
|
|
||||||
|
|
||||||
JSONArray words = joResult.getJSONArray("ws");
|
|
||||||
for (int i = 0; i < words.length(); i++) {
|
|
||||||
// 转写结果词,默认使用第一个结果
|
|
||||||
JSONArray items = words.getJSONObject(i).getJSONArray("cw");
|
|
||||||
JSONObject obj = items.getJSONObject(0);
|
|
||||||
ret.append(obj.getString("w"));
|
|
||||||
// 如果需要多候选结果,解析数组其他字段
|
|
||||||
// for(int j = 0; j < items.length(); j++)
|
|
||||||
// {
|
|
||||||
// JSONObject obj = items.getJSONObject(j);
|
|
||||||
// ret.append(obj.getString("w"));
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
return ret.toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static String parseGrammarResult(String json) {
|
|
||||||
StringBuffer ret = new StringBuffer();
|
|
||||||
try {
|
|
||||||
JSONTokener tokener = new JSONTokener(json);
|
|
||||||
JSONObject joResult = new JSONObject(tokener);
|
|
||||||
|
|
||||||
JSONArray words = joResult.getJSONArray("ws");
|
|
||||||
for (int i = 0; i < words.length(); i++) {
|
|
||||||
JSONArray items = words.getJSONObject(i).getJSONArray("cw");
|
|
||||||
for(int j = 0; j < items.length(); j++)
|
|
||||||
{
|
|
||||||
JSONObject obj = items.getJSONObject(j);
|
|
||||||
if(obj.getString("w").contains("nomatch"))
|
|
||||||
{
|
|
||||||
ret.append("没有匹配结果.");
|
|
||||||
return ret.toString();
|
|
||||||
}
|
|
||||||
ret.append("【结果】" + obj.getString("w"));
|
|
||||||
ret.append("【置信度】" + obj.getInt("sc"));
|
|
||||||
ret.append("\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
ret.append("没有匹配结果.");
|
|
||||||
}
|
|
||||||
return ret.toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static String parseLocalGrammarResult(String json) {
|
|
||||||
StringBuffer ret = new StringBuffer();
|
|
||||||
try {
|
|
||||||
JSONTokener tokener = new JSONTokener(json);
|
|
||||||
JSONObject joResult = new JSONObject(tokener);
|
|
||||||
|
|
||||||
JSONArray words = joResult.getJSONArray("ws");
|
|
||||||
for (int i = 0; i < words.length(); i++) {
|
|
||||||
JSONArray items = words.getJSONObject(i).getJSONArray("cw");
|
|
||||||
for(int j = 0; j < items.length(); j++)
|
|
||||||
{
|
|
||||||
JSONObject obj = items.getJSONObject(j);
|
|
||||||
if(obj.getString("w").contains("nomatch"))
|
|
||||||
{
|
|
||||||
ret.append("没有匹配结果.");
|
|
||||||
return ret.toString();
|
|
||||||
}
|
|
||||||
ret.append("【结果】" + obj.getString("w"));
|
|
||||||
ret.append("\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ret.append("【置信度】" + joResult.optInt("sc"));
|
|
||||||
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
ret.append("没有匹配结果.");
|
|
||||||
}
|
|
||||||
return ret.toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static String parseTransResult(String json,String key) {
|
|
||||||
StringBuffer ret = new StringBuffer();
|
|
||||||
try {
|
|
||||||
JSONTokener tokener = new JSONTokener(json);
|
|
||||||
JSONObject joResult = new JSONObject(tokener);
|
|
||||||
String errorCode = joResult.optString("ret");
|
|
||||||
if(!errorCode.equals("0")) {
|
|
||||||
return joResult.optString("errmsg");
|
|
||||||
}
|
|
||||||
JSONObject transResult = joResult.optJSONObject("trans_result");
|
|
||||||
ret.append(transResult.optString(key));
|
|
||||||
/*JSONArray words = joResult.getJSONArray("results");
|
|
||||||
for (int i = 0; i < words.length(); i++) {
|
|
||||||
JSONObject obj = words.getJSONObject(i);
|
|
||||||
ret.append(obj.getString(key));
|
|
||||||
}*/
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
return ret.toString();
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,69 +0,0 @@
|
|||||||
package com.example.myapplication;
|
|
||||||
|
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
|
||||||
|
|
||||||
import android.content.Intent;
|
|
||||||
import android.os.Bundle;
|
|
||||||
import android.view.View;
|
|
||||||
import android.widget.Button;
|
|
||||||
import android.widget.TextView;
|
|
||||||
|
|
||||||
import com.example.myapplication.weather.MainActivity1;
|
|
||||||
import com.example.myapplication.weather.SettingActivity;
|
|
||||||
import com.example.myapplication.weather.WeatherItem;
|
|
||||||
|
|
||||||
public class MainActivity extends AppCompatActivity {
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
|
||||||
super.onCreate(savedInstanceState);
|
|
||||||
setContentView(R.layout.activity_main);
|
|
||||||
Button button_main_1=findViewById(R.id.button_main_1);
|
|
||||||
//点击
|
|
||||||
button_main_1.setOnClickListener(new View.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(View view) {
|
|
||||||
Intent intent1=new Intent(MainActivity.this,yijiantong.class);
|
|
||||||
startActivity(intent1);
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
//点击
|
|
||||||
Button button_main_2=findViewById(R.id.button_main_2);
|
|
||||||
button_main_2.setOnClickListener(new View.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(View view) {
|
|
||||||
Intent intent2=new Intent(MainActivity.this, MainActivity1.class);
|
|
||||||
startActivity(intent2);
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
Button button_main_3=findViewById(R.id.button_main_3);
|
|
||||||
//点击
|
|
||||||
button_main_3.setOnClickListener(new View.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(View view) {
|
|
||||||
Object packageContext;
|
|
||||||
Intent intent3=new Intent(MainActivity.this,zhaoxun.class);
|
|
||||||
startActivity(intent3);
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
Button button_main_4=findViewById(R.id.button_main_4);
|
|
||||||
//点击
|
|
||||||
button_main_4.setOnClickListener(new View.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(View view) {
|
|
||||||
Object packageContext;
|
|
||||||
Intent intent1=new Intent(MainActivity.this,yuyin.class);
|
|
||||||
startActivity(intent1);
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,18 +0,0 @@
|
|||||||
package com.example.myapplication;
|
|
||||||
|
|
||||||
import android.app.Application;
|
|
||||||
|
|
||||||
import com.iflytek.cloud.SpeechUtility;
|
|
||||||
|
|
||||||
public class SpeechApplication extends Application {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCreate() {
|
|
||||||
|
|
||||||
// 5ef048e1 为在开放平台注册的APPID 注意没有空格,直接替换即可
|
|
||||||
SpeechUtility.createUtility(SpeechApplication.this, "appid=6d0c39e4");
|
|
||||||
|
|
||||||
super.onCreate();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,224 +0,0 @@
|
|||||||
package com.example.myapplication;
|
|
||||||
|
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
|
||||||
import android.content.Intent;
|
|
||||||
import android.os.Bundle;
|
|
||||||
import android.view.View;
|
|
||||||
import android.widget.Button;
|
|
||||||
|
|
||||||
import com.baidu.mapapi.bikenavi.BikeNavigateHelper;
|
|
||||||
import com.baidu.mapapi.walknavi.adapter.IWRoutePlanListener;
|
|
||||||
import com.baidu.mapapi.walknavi.model.WalkRoutePlanError;
|
|
||||||
import com.baidu.mapapi.walknavi.params.*;
|
|
||||||
import com.baidu.mapapi.CoordType;
|
|
||||||
import com.baidu.mapapi.SDKInitializer;
|
|
||||||
import com.baidu.mapapi.model.LatLng;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import android.widget.ImageButton;
|
|
||||||
import android.widget.TextView;
|
|
||||||
import android.annotation.SuppressLint;
|
|
||||||
import android.os.Bundle;
|
|
||||||
import com.baidu.baidunavis.BaiduNaviParams;
|
|
||||||
import com.baidu.mapapi.SDKInitializer;
|
|
||||||
import com.baidu.mapapi.map.MapView;
|
|
||||||
import com.baidu.mapapi.model.LatLng;
|
|
||||||
import com.baidu.mapapi.walknavi.WalkNavigateHelper;
|
|
||||||
import com.baidu.mapapi.walknavi.adapter.IWEngineInitListener;
|
|
||||||
import com.baidu.mapapi.walknavi.params.WalkNaviLaunchParam;
|
|
||||||
|
|
||||||
public class itemfound extends AppCompatActivity {
|
|
||||||
private WalkNavigateHelper helper = null;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
|
||||||
super.onCreate(savedInstanceState);
|
|
||||||
|
|
||||||
//initPermissions(); // 初始化权限
|
|
||||||
setContentView(R.layout.activity_itemfound); // 填充视图
|
|
||||||
|
|
||||||
// 点击按钮开始导航
|
|
||||||
Button imageButton = findViewById(R.id.button_item_keys);
|
|
||||||
imageButton.setOnClickListener(new View.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(View view) {
|
|
||||||
// 初始化步行导航
|
|
||||||
startBikeNavi();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
Button imageButtonwallet = findViewById(R.id.button_item_wallet);
|
|
||||||
imageButtonwallet.setOnClickListener(new View.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(View view) {
|
|
||||||
// 初始化步行导航
|
|
||||||
startBikeNavi();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
// 初始化权限
|
|
||||||
/*
|
|
||||||
private void initPermissions() {
|
|
||||||
if (Build.VERSION.SDK_INT >= 23) {
|
|
||||||
ArrayList<String> permissionsList = new ArrayList<>();
|
|
||||||
String[] permissions = {
|
|
||||||
Manifest.permission.ACCESS_NETWORK_STATE,
|
|
||||||
Manifest.permission.INTERNET,
|
|
||||||
Manifest.permission.ACCESS_COARSE_LOCATION,
|
|
||||||
Manifest.permission.ACCESS_FINE_LOCATION,
|
|
||||||
Manifest.permission.WRITE_EXTERNAL_STORAGE,
|
|
||||||
};
|
|
||||||
|
|
||||||
for (String perm : permissions) {
|
|
||||||
if (PackageManager.PERMISSION_GRANTED != checkSelfPermission(perm)) {
|
|
||||||
permissionsList.add(perm);
|
|
||||||
// 进入到这里代表没有权限.
|
|
||||||
}
|
|
||||||
if (!permissionsList.isEmpty()) {
|
|
||||||
String[] strings = new String[permissionsList.size()];
|
|
||||||
requestPermissions(permissionsList.toArray(strings), 0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}*/
|
|
||||||
private void startBikeNavi() {
|
|
||||||
//Log.d("=========", "startBikeNavi");
|
|
||||||
try {
|
|
||||||
helper = WalkNavigateHelper.getInstance();
|
|
||||||
helper.initNaviEngine(this, new IWEngineInitListener() {
|
|
||||||
@Override
|
|
||||||
public void engineInitSuccess() {
|
|
||||||
// Log.d("=========", "BikeNavi engineInitSuccess引擎初始化成功");
|
|
||||||
startWebNavi();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void engineInitFail() {
|
|
||||||
// Log.d("=========", "BikeNavi engineInitFail");
|
|
||||||
BikeNavigateHelper.getInstance().unInitNaviEngine();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} catch (Exception e) {
|
|
||||||
// Log.d("=========", "startBikeNavi Exception");
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
private void startWebNavi() {
|
|
||||||
//起终点位置
|
|
||||||
LatLng walkStartNode = new LatLng(39.110132, 117.358512);
|
|
||||||
LatLng walkEndNode = new LatLng(39.111348, 117.358940);
|
|
||||||
|
|
||||||
WalkRouteNodeInfo startNode = new WalkRouteNodeInfo();
|
|
||||||
startNode.setLocation(walkStartNode);
|
|
||||||
WalkRouteNodeInfo endNode = new WalkRouteNodeInfo();
|
|
||||||
endNode.setLocation(walkEndNode);
|
|
||||||
// 官网
|
|
||||||
//构造WalkNaviLaunchParam
|
|
||||||
WalkNaviLaunchParam walkParam = new WalkNaviLaunchParam().startNodeInfo(startNode).endNodeInfo(endNode);
|
|
||||||
//获取WalkNavigateHelper实例 //发起算路
|
|
||||||
helper.routePlanWithRouteNode(walkParam, new IWRoutePlanListener() {
|
|
||||||
@Override
|
|
||||||
public void onRoutePlanStart() {
|
|
||||||
// Log.d("=======", "WalkNavi onRoutePlanStart开始步行导航");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRoutePlanSuccess() {
|
|
||||||
// Log.d("========", "onRoutePlanSuccess算路成功");
|
|
||||||
Intent intent = new Intent(itemfound.this,WNaviGuideActivity.class);
|
|
||||||
// intent.setClass(getContext(), WNaviGuideActivity.class);
|
|
||||||
startActivity(intent);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRoutePlanFail(WalkRoutePlanError error) {
|
|
||||||
// Log.d("Walk", "WalkNavi onRoutePlanFail");
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
@Override
|
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
|
||||||
|
|
||||||
super.onCreate(savedInstanceState);
|
|
||||||
setContentView(R.layout.activity_itemfound);
|
|
||||||
Button find_wallet=findViewById(R.id.button_item_wallet);
|
|
||||||
Button find_keys=findViewById(R.id.button_item_keys);
|
|
||||||
find_wallet.setOnClickListener(new View.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(View view) {//Intent
|
|
||||||
double locationX;
|
|
||||||
double locationy;
|
|
||||||
//BaiduMapNavigation
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
find_keys.setOnClickListener(new View.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(View view) {//Intent
|
|
||||||
//NaviParaOption para=new Navi();
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}*/ private void startBikeNavi1() {
|
|
||||||
//Log.d("=========", "startBikeNavi");
|
|
||||||
try {
|
|
||||||
helper = WalkNavigateHelper.getInstance();
|
|
||||||
helper.initNaviEngine(this, new IWEngineInitListener() {
|
|
||||||
@Override
|
|
||||||
public void engineInitSuccess() {
|
|
||||||
// Log.d("=========", "BikeNavi engineInitSuccess引擎初始化成功");
|
|
||||||
startWebNavi1();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void engineInitFail() {
|
|
||||||
// Log.d("=========", "BikeNavi engineInitFail");
|
|
||||||
BikeNavigateHelper.getInstance().unInitNaviEngine();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} catch (Exception e) {
|
|
||||||
// Log.d("=========", "startBikeNavi Exception");
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
private void startWebNavi1() {
|
|
||||||
//起终点位置
|
|
||||||
LatLng walkStartNode = new LatLng(39.110132, 117.358512);
|
|
||||||
LatLng walkEndNode = new LatLng(39.112286, 117.359619);
|
|
||||||
|
|
||||||
WalkRouteNodeInfo startNode = new WalkRouteNodeInfo();
|
|
||||||
startNode.setLocation(walkStartNode);
|
|
||||||
WalkRouteNodeInfo endNode = new WalkRouteNodeInfo();
|
|
||||||
endNode.setLocation(walkEndNode);
|
|
||||||
// 官网
|
|
||||||
//构造WalkNaviLaunchParam
|
|
||||||
WalkNaviLaunchParam walkParam = new WalkNaviLaunchParam().startNodeInfo(startNode).endNodeInfo(endNode);
|
|
||||||
//获取WalkNavigateHelper实例 //发起算路
|
|
||||||
helper.routePlanWithRouteNode(walkParam, new IWRoutePlanListener() {
|
|
||||||
@Override
|
|
||||||
public void onRoutePlanStart() {
|
|
||||||
// Log.d("=======", "WalkNavi onRoutePlanStart开始步行导航");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRoutePlanSuccess() {
|
|
||||||
// Log.d("========", "onRoutePlanSuccess算路成功");
|
|
||||||
Intent intent = new Intent(itemfound.this,WNaviGuideActivity.class);
|
|
||||||
// intent.setClass(getContext(), WNaviGuideActivity.class);
|
|
||||||
startActivity(intent);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRoutePlanFail(WalkRoutePlanError error) {
|
|
||||||
// Log.d("Walk", "WalkNavi onRoutePlanFail");
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,14 +0,0 @@
|
|||||||
package com.example.myapplication;
|
|
||||||
|
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
|
||||||
|
|
||||||
import android.os.Bundle;
|
|
||||||
|
|
||||||
public class jiankang extends AppCompatActivity {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
|
||||||
super.onCreate(savedInstanceState);
|
|
||||||
setContentView(R.layout.activity_jiankang);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,24 +0,0 @@
|
|||||||
package com.example.myapplication.weather;
|
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.database.sqlite.SQLiteDatabase;
|
|
||||||
import android.database.sqlite.SQLiteOpenHelper;
|
|
||||||
|
|
||||||
public class DatabaseHelper extends SQLiteOpenHelper {
|
|
||||||
private static final int VERSION = 1;
|
|
||||||
private static final String NAME = "weather";
|
|
||||||
|
|
||||||
public DatabaseHelper(Context context){
|
|
||||||
super(context,NAME,null,VERSION);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCreate(SQLiteDatabase db) {
|
|
||||||
db.execSQL("create table weather (_id INTEGER PRIMARY KEY AUTOINCREMENT,date text,max_temp text,min_temp text,text text,humidity text,pressure text,wind text,icon text)");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,38 +0,0 @@
|
|||||||
package com.example.myapplication.weather;
|
|
||||||
|
|
||||||
import androidx.fragment.app.Fragment;
|
|
||||||
|
|
||||||
import android.content.Intent;
|
|
||||||
|
|
||||||
import com.example.myapplication.R;
|
|
||||||
import com.example.myapplication.weather.SingleFragmentActivity;
|
|
||||||
import com.example.myapplication.weather.WeatherFragment;
|
|
||||||
|
|
||||||
public class MainActivity1 extends SingleFragmentActivity implements WeatherFragment.Callbacks{
|
|
||||||
@Override
|
|
||||||
protected Fragment createFragment() {
|
|
||||||
return WeatherFragment.newInstance();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected int getLayoutId() {
|
|
||||||
return R.layout.activity_masterdetail;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected int getFragmentId() {
|
|
||||||
return R.id.fragment_container;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onWeatherSelected(WeatherItem weatherItem){ //平板中选中天气
|
|
||||||
if(findViewById(R.id.detail_container)==null){
|
|
||||||
Intent intent = WeatherDetailActivity.newIntent(this,weatherItem);
|
|
||||||
startActivity(intent);
|
|
||||||
}else{
|
|
||||||
Fragment newDetail = WeatherDetailFragment.newInstance(weatherItem);
|
|
||||||
getSupportFragmentManager().beginTransaction()
|
|
||||||
.replace(R.id.detail_container,newDetail)
|
|
||||||
.commit();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,95 +0,0 @@
|
|||||||
package com.example.myapplication.weather;
|
|
||||||
|
|
||||||
import android.app.AlarmManager;
|
|
||||||
import android.app.IntentService;
|
|
||||||
import android.app.Notification;
|
|
||||||
import android.app.NotificationChannel;
|
|
||||||
import android.app.NotificationManager;
|
|
||||||
import android.app.PendingIntent;
|
|
||||||
import android.content.Context;
|
|
||||||
import android.content.Intent;
|
|
||||||
import android.content.SharedPreferences;
|
|
||||||
import android.os.Build;
|
|
||||||
import android.os.SystemClock;
|
|
||||||
import android.util.Log;
|
|
||||||
|
|
||||||
import androidx.annotation.Nullable;
|
|
||||||
import androidx.core.app.NotificationCompat;
|
|
||||||
|
|
||||||
import com.example.myapplication.R;
|
|
||||||
import com.example.myapplication.weather.WeatherFragment;
|
|
||||||
|
|
||||||
public class NotificationService extends IntentService {
|
|
||||||
private static final String TAG = "NotificationService";
|
|
||||||
|
|
||||||
private static final int NOTIFICATION_INTERVAL = 1000*60;
|
|
||||||
|
|
||||||
public static Intent newIntent(Context context){
|
|
||||||
return new Intent(context,NotificationService.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
public NotificationService(){
|
|
||||||
super(TAG);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onHandleIntent(@Nullable Intent intent) {
|
|
||||||
Log.i(TAG,"Intent there");
|
|
||||||
|
|
||||||
Intent i = WeatherFragment.newIntent(this);
|
|
||||||
PendingIntent pi = PendingIntent.getService(this,0,i,0);
|
|
||||||
|
|
||||||
Notification notification = null;
|
|
||||||
SharedPreferences pref = this.getSharedPreferences("setting",Context.MODE_PRIVATE);
|
|
||||||
String unit = pref.getString("unit","摄氏度");
|
|
||||||
String unit_text = "°";
|
|
||||||
if (unit == "华氏度"){
|
|
||||||
unit_text = "℉";
|
|
||||||
}
|
|
||||||
NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
|
|
||||||
.setTicker("ticker")
|
|
||||||
.setSmallIcon(R.drawable.a100)
|
|
||||||
.setContentTitle("今日天气")
|
|
||||||
.setContentText(pref.getString("city","北京")+
|
|
||||||
" 天气:"+pref.getString("text","")+
|
|
||||||
", 最高温度:"+pref.getString("max_temp","")+unit_text+
|
|
||||||
", 最低温度:"+pref.getString("min_temp","")+unit_text)
|
|
||||||
.setContentIntent(pi)
|
|
||||||
.setAutoCancel(true);
|
|
||||||
|
|
||||||
NotificationManager notificationManager =(NotificationManager)
|
|
||||||
getSystemService(NOTIFICATION_SERVICE);
|
|
||||||
|
|
||||||
//一定要设置channel
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
|
||||||
NotificationChannel channel = new NotificationChannel("to-do"
|
|
||||||
, "待办消息",
|
|
||||||
NotificationManager.IMPORTANCE_HIGH);
|
|
||||||
channel.enableVibration(true);
|
|
||||||
channel.setVibrationPattern(new long[]{500});
|
|
||||||
notificationManager.createNotificationChannel(channel);
|
|
||||||
builder.setChannelId("to-do");
|
|
||||||
notification = builder.build();
|
|
||||||
} else {
|
|
||||||
notification = builder.build();
|
|
||||||
}
|
|
||||||
|
|
||||||
notificationManager.notify(0,notification);
|
|
||||||
System.out.println(notification);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void setServiceAlarm(Context context,boolean isOn){
|
|
||||||
Intent i = NotificationService.newIntent(context);
|
|
||||||
PendingIntent pi = PendingIntent.getService(context,0,i,0);
|
|
||||||
|
|
||||||
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
|
|
||||||
|
|
||||||
if(isOn){
|
|
||||||
alarmManager.setInexactRepeating(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime(),
|
|
||||||
NOTIFICATION_INTERVAL,pi);
|
|
||||||
}else{
|
|
||||||
alarmManager.cancel(pi);
|
|
||||||
pi.cancel();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,132 +0,0 @@
|
|||||||
package com.example.myapplication.weather;
|
|
||||||
|
|
||||||
import android.content.DialogInterface;
|
|
||||||
import android.content.SharedPreferences;
|
|
||||||
import android.os.Bundle;
|
|
||||||
import android.text.Editable;
|
|
||||||
import android.text.TextWatcher;
|
|
||||||
import android.view.View;
|
|
||||||
import android.widget.EditText;
|
|
||||||
import android.widget.LinearLayout;
|
|
||||||
import android.widget.TextView;
|
|
||||||
import android.widget.Toast;
|
|
||||||
|
|
||||||
import androidx.annotation.Nullable;
|
|
||||||
import androidx.appcompat.app.AlertDialog;
|
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
|
||||||
|
|
||||||
import com.example.myapplication.R;
|
|
||||||
|
|
||||||
public class SettingActivity extends AppCompatActivity {
|
|
||||||
private EditText location;
|
|
||||||
private TextView unit_text;
|
|
||||||
private TextView send_text;
|
|
||||||
private LinearLayout page;
|
|
||||||
private LinearLayout unit;
|
|
||||||
private LinearLayout send;
|
|
||||||
private String city;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
|
||||||
super.onCreate(savedInstanceState);
|
|
||||||
setContentView(R.layout.activity_setting);
|
|
||||||
|
|
||||||
location = (EditText) findViewById(R.id.location);
|
|
||||||
unit = (LinearLayout)findViewById(R.id.unit);
|
|
||||||
page = (LinearLayout)findViewById(R.id.page);
|
|
||||||
unit_text = (TextView)findViewById(R.id.unit_text);
|
|
||||||
send = (LinearLayout)findViewById(R.id.send);
|
|
||||||
send_text = (TextView)findViewById(R.id.send_text);
|
|
||||||
|
|
||||||
SharedPreferences pref = getSharedPreferences("setting",MODE_PRIVATE);
|
|
||||||
location.setText(pref.getString("city","北京"));
|
|
||||||
unit_text.setText(pref.getString("unit","摄氏度"));
|
|
||||||
send_text.setText(pref.getString("send","是"));
|
|
||||||
|
|
||||||
page.setOnClickListener(new View.OnClickListener(){
|
|
||||||
public void onClick(View v){
|
|
||||||
location.clearFocus();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
location.addTextChangedListener(new TextWatcher() {
|
|
||||||
@Override
|
|
||||||
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
|
||||||
city = s.toString();
|
|
||||||
SharedPreferences.Editor editor = getSharedPreferences("setting",MODE_PRIVATE).edit();
|
|
||||||
editor.putString("city",city);
|
|
||||||
editor.commit();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void afterTextChanged(Editable s) {
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
unit.setOnClickListener(new View.OnClickListener(){
|
|
||||||
public void onClick(View v){
|
|
||||||
click();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
send.setOnClickListener(new View.OnClickListener(){
|
|
||||||
public void onClick(View v){
|
|
||||||
click2();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
//点击按钮弹出一个单选对话框
|
|
||||||
public void click() {
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(this);
|
|
||||||
builder.setTitle("请选择温度单位");
|
|
||||||
final String items[] = {"摄氏度","华氏度"};
|
|
||||||
|
|
||||||
//-1代表没有条目被选中
|
|
||||||
builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(DialogInterface dialog, int which) {
|
|
||||||
//1.把选中的条目取出来
|
|
||||||
String item = items[which];
|
|
||||||
Toast.makeText(getApplicationContext(),item.toString(),Toast.LENGTH_LONG).show();
|
|
||||||
unit_text.setText(item.toString());
|
|
||||||
SharedPreferences.Editor editor = getSharedPreferences("setting",MODE_PRIVATE).edit();
|
|
||||||
editor.putString("unit",item.toString());
|
|
||||||
editor.commit();
|
|
||||||
//2.然后把对话框关闭
|
|
||||||
dialog.dismiss();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
//一样要show
|
|
||||||
builder.show();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void click2() {
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(this);
|
|
||||||
builder.setTitle("请选择是否开启通知");
|
|
||||||
final String items[] = {"是","否"};
|
|
||||||
|
|
||||||
//-1代表没有条目被选中
|
|
||||||
builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(DialogInterface dialog, int which) {
|
|
||||||
//1.把选中的条目取出来
|
|
||||||
String item = items[which];
|
|
||||||
Toast.makeText(getApplicationContext(),item.toString(),Toast.LENGTH_LONG).show();
|
|
||||||
send_text.setText(item.toString());
|
|
||||||
SharedPreferences.Editor editor = getSharedPreferences("setting",MODE_PRIVATE).edit();
|
|
||||||
editor.putString("send",item.toString());
|
|
||||||
editor.commit();
|
|
||||||
//2.然后把对话框关闭
|
|
||||||
dialog.dismiss();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
//一样要show
|
|
||||||
builder.show();
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,30 +0,0 @@
|
|||||||
package com.example.myapplication.weather;
|
|
||||||
|
|
||||||
import android.os.Bundle;
|
|
||||||
|
|
||||||
import androidx.annotation.Nullable;
|
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
|
||||||
import androidx.fragment.app.Fragment;
|
|
||||||
import androidx.fragment.app.FragmentManager;
|
|
||||||
|
|
||||||
public abstract class SingleFragmentActivity extends AppCompatActivity {
|
|
||||||
protected abstract Fragment createFragment();
|
|
||||||
protected abstract int getLayoutId();
|
|
||||||
protected abstract int getFragmentId();
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
|
||||||
super.onCreate(savedInstanceState);
|
|
||||||
setContentView(getLayoutId());
|
|
||||||
|
|
||||||
FragmentManager fm = getSupportFragmentManager();
|
|
||||||
Fragment fragment = fm.findFragmentById(getFragmentId());
|
|
||||||
|
|
||||||
if(fragment == null){
|
|
||||||
fragment = createFragment();
|
|
||||||
fm.beginTransaction().
|
|
||||||
add(getFragmentId(),fragment)
|
|
||||||
.commit();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,34 +0,0 @@
|
|||||||
package com.example.myapplication.weather;
|
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.content.Intent;
|
|
||||||
|
|
||||||
import androidx.fragment.app.Fragment;
|
|
||||||
|
|
||||||
import com.example.myapplication.R;
|
|
||||||
|
|
||||||
public class WeatherDetailActivity extends SingleFragmentActivity{
|
|
||||||
public static final String EXTRA_WEATHER_ITEM = "com.example.weather.weatherItem";
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected Fragment createFragment() {
|
|
||||||
WeatherItem weatherItem = (WeatherItem)getIntent().getSerializableExtra(EXTRA_WEATHER_ITEM);
|
|
||||||
return WeatherDetailFragment.newInstance(weatherItem);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected int getLayoutId() {
|
|
||||||
return R.layout.activity_detail;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected int getFragmentId() {
|
|
||||||
return R.id.detail_container;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Intent newIntent(Context packageContext, WeatherItem weatherItem){
|
|
||||||
Intent intent = new Intent(packageContext,WeatherDetailActivity.class);
|
|
||||||
intent.putExtra(EXTRA_WEATHER_ITEM,weatherItem);
|
|
||||||
return intent;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,133 +0,0 @@
|
|||||||
package com.example.myapplication.weather;
|
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.content.Intent;
|
|
||||||
import android.graphics.drawable.Drawable;
|
|
||||||
import android.os.Bundle;
|
|
||||||
import android.util.Log;
|
|
||||||
import android.view.LayoutInflater;
|
|
||||||
import android.view.Menu;
|
|
||||||
import android.view.MenuInflater;
|
|
||||||
import android.view.MenuItem;
|
|
||||||
import android.view.View;
|
|
||||||
import android.view.ViewGroup;
|
|
||||||
import android.widget.ImageView;
|
|
||||||
import android.widget.TextView;
|
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
|
||||||
import androidx.annotation.Nullable;
|
|
||||||
import androidx.fragment.app.Fragment;
|
|
||||||
|
|
||||||
import com.example.myapplication.R;
|
|
||||||
|
|
||||||
public class WeatherDetailFragment extends Fragment {
|
|
||||||
private WeatherItem mWeatherItem; //用来设置UI
|
|
||||||
|
|
||||||
private TextView mDeatilDate;
|
|
||||||
private TextView mDetailMaxTemp;
|
|
||||||
private TextView mDetailMinTemp;
|
|
||||||
private ImageView mDetialIcon;
|
|
||||||
private TextView mDetailDesc;
|
|
||||||
private TextView mDetailHumidity;
|
|
||||||
private TextView mDetailPressure;
|
|
||||||
private TextView mDetailWind;
|
|
||||||
|
|
||||||
private static final String TAG = "WeatherDetailFragment";
|
|
||||||
private static final String ARG_ITEM = "args_item";
|
|
||||||
private String unit_text = "°";
|
|
||||||
|
|
||||||
public static WeatherDetailFragment newInstance(WeatherItem weatherItem) {
|
|
||||||
Bundle args = new Bundle();
|
|
||||||
args.putSerializable(ARG_ITEM,weatherItem);
|
|
||||||
WeatherDetailFragment fragment = new WeatherDetailFragment();
|
|
||||||
fragment.setArguments(args);
|
|
||||||
return fragment;
|
|
||||||
}
|
|
||||||
|
|
||||||
//获取drawable图标资源的id
|
|
||||||
public int getIconId(Context mContext, String icon){
|
|
||||||
int i= getResources().getIdentifier(icon, "drawable", mContext.getPackageName()) ;
|
|
||||||
if(i>0){
|
|
||||||
Log.i(TAG,"Success to get drawable resoure");
|
|
||||||
}else{
|
|
||||||
Log.i(TAG,"Fail to get drawable resoure");
|
|
||||||
}
|
|
||||||
return i;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCreate(@Nullable Bundle savedInstanceState) {
|
|
||||||
super.onCreate(savedInstanceState);
|
|
||||||
setHasOptionsMenu(true);
|
|
||||||
mWeatherItem = (WeatherItem) getArguments().getSerializable(ARG_ITEM);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Nullable
|
|
||||||
@Override
|
|
||||||
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
|
|
||||||
View v = inflater.inflate(R.layout.fragment_weather_detail,container,false);
|
|
||||||
if(getActivity().getSharedPreferences("setting",Context.MODE_PRIVATE).getString("unit","摄氏度")=="华氏度"){
|
|
||||||
unit_text = "℉";
|
|
||||||
}
|
|
||||||
|
|
||||||
mDeatilDate = (TextView) v.findViewById(R.id.detail_date);
|
|
||||||
mDetailMaxTemp = (TextView) v.findViewById(R.id.detail_max_temp);
|
|
||||||
mDetailMinTemp = (TextView) v.findViewById(R.id.detail_min_temp);
|
|
||||||
mDetialIcon = (ImageView) v.findViewById(R.id.detail_icon);
|
|
||||||
mDetailHumidity = (TextView) v.findViewById(R.id.detail_humidity);
|
|
||||||
mDetailPressure = (TextView) v.findViewById(R.id.detail_pressure);
|
|
||||||
mDetailWind = (TextView) v.findViewById(R.id.detail_wind);
|
|
||||||
mDetailDesc = (TextView) v.findViewById(R.id.detail_desc);
|
|
||||||
|
|
||||||
mDeatilDate.setText(mWeatherItem.getData());
|
|
||||||
mDetailMaxTemp.setText(mWeatherItem.getMax_temp()+unit_text);
|
|
||||||
mDetailMinTemp.setText(mWeatherItem.getMin_temp()+unit_text);
|
|
||||||
String icon = "a"+mWeatherItem.getIcon();
|
|
||||||
int id = getIconId(getContext(),icon);
|
|
||||||
Drawable drawable = getResources().getDrawable(id);
|
|
||||||
mDetialIcon.setImageDrawable(drawable);
|
|
||||||
mDetailHumidity.setText("Humidity: "+mWeatherItem.getHumidity()+" %");
|
|
||||||
mDetailPressure.setText("Pressure: "+mWeatherItem.getPressure()+" hPa");
|
|
||||||
mDetailWind.setText("Wind: "+mWeatherItem.getWind()+" km/h SE");
|
|
||||||
mDetailDesc.setText(mWeatherItem.getText());
|
|
||||||
|
|
||||||
return v;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String createMessage(){
|
|
||||||
String message = "";
|
|
||||||
message += "今天的天气状况为:"+mWeatherItem.getText();
|
|
||||||
message += " 今天的最高温度是: "+mWeatherItem.getMax_temp();
|
|
||||||
message += " 今天的最低温度是: "+mWeatherItem.getMin_temp();
|
|
||||||
message += " 今天的湿度为: "+mWeatherItem.getHumidity();
|
|
||||||
message += " 今天的风速为:"+mWeatherItem.getWind();
|
|
||||||
message += " 今天的气压为:"+mWeatherItem.getPressure();
|
|
||||||
message += " 希望您拥有美好的一天!";
|
|
||||||
return message;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) {
|
|
||||||
super.onCreateOptionsMenu(menu, inflater);
|
|
||||||
if(getActivity().findViewById(R.id.fragment_container)==null){ //是手机模式
|
|
||||||
inflater.inflate(R.menu.fragment_detail,menu);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
|
|
||||||
switch (item.getItemId()){
|
|
||||||
case R.id.menu_setting:
|
|
||||||
Intent intent = new Intent(getActivity(),SettingActivity.class);
|
|
||||||
startActivity(intent);
|
|
||||||
return true;
|
|
||||||
case R.id.menu_share:
|
|
||||||
Intent i = new Intent(Intent.ACTION_SEND);
|
|
||||||
i.setType("text/plain");
|
|
||||||
i.putExtra(Intent.EXTRA_TEXT,createMessage());
|
|
||||||
startActivity(i);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return super.onOptionsItemSelected(item);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,78 +0,0 @@
|
|||||||
package com.example.myapplication.weather;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
public class WeatherItem implements Serializable {
|
|
||||||
private String data; //天气日期
|
|
||||||
private String max_temp; //最高温度
|
|
||||||
private String min_temp; //最低温度
|
|
||||||
private String text; //天气描述
|
|
||||||
private String humidity; //适度
|
|
||||||
private String pressure; //气压
|
|
||||||
private String wind; //风力
|
|
||||||
private String icon; //图标
|
|
||||||
|
|
||||||
public String getIcon() {
|
|
||||||
return icon;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setIcon(String icon) {
|
|
||||||
this.icon = icon;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getData() {
|
|
||||||
return data;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setData(String data) {
|
|
||||||
this.data = data;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getMax_temp() {
|
|
||||||
return max_temp;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setMax_temp(String max_temp) {
|
|
||||||
this.max_temp = max_temp;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getMin_temp() {
|
|
||||||
return min_temp;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setMin_temp(String min_temp) {
|
|
||||||
this.min_temp = min_temp;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getText() {
|
|
||||||
return text;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setText(String text) {
|
|
||||||
this.text = text;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getHumidity() {
|
|
||||||
return humidity;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setHumidity(String humidity) {
|
|
||||||
this.humidity = humidity;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getPressure() {
|
|
||||||
return pressure;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPressure(String pressure) {
|
|
||||||
this.pressure = pressure;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getWind() {
|
|
||||||
return wind;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setWind(String wind) {
|
|
||||||
this.wind = wind;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,142 +0,0 @@
|
|||||||
package com.example.myapplication;
|
|
||||||
|
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
|
||||||
|
|
||||||
import android.content.Intent;
|
|
||||||
import android.net.Uri;
|
|
||||||
import android.os.Build;
|
|
||||||
import android.os.Bundle;
|
|
||||||
import android.provider.ContactsContract;
|
|
||||||
import android.view.View;
|
|
||||||
import android.widget.Button;
|
|
||||||
|
|
||||||
public class yijiantong extends AppCompatActivity {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
|
||||||
super.onCreate(savedInstanceState);
|
|
||||||
setContentView(R.layout.activity_yijiantong);
|
|
||||||
if (shouldAskPermissions()) {
|
|
||||||
askPermissions();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
Button button1 = findViewById(R.id.button1);
|
|
||||||
//点击
|
|
||||||
button1.setOnClickListener(new View.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(View view) {
|
|
||||||
Uri uri10 = Uri.parse("alipayqr://platformapi/startapp?saId=20000067&chInfo=ch_desktop&url=https%3A%2F%2F68687564.h5app.alipay.com%2Fwww%2Findex.html");
|
|
||||||
Intent intent10 = new Intent(Intent.ACTION_VIEW, uri10);
|
|
||||||
startActivity(intent10);
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
Button button2 = findViewById(R.id.button2);
|
|
||||||
//点击
|
|
||||||
button2.setOnClickListener(new View.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(View view) {
|
|
||||||
Uri uri = Uri.parse("alipayqr://platformapi/startapp?saId=2021002170600786");
|
|
||||||
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
|
|
||||||
startActivity(intent);
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
Button button3 = findViewById(R.id.button3);
|
|
||||||
//点击
|
|
||||||
button3.setOnClickListener(new View.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(View view) {
|
|
||||||
Uri uri = Uri.parse("alipayqr://platformapi/startapp?saId=2021001123608001");
|
|
||||||
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
|
|
||||||
startActivity(intent);
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
Button button4 = findViewById(R.id.button4);
|
|
||||||
//点击
|
|
||||||
button4.setOnClickListener(new View.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(View view) {
|
|
||||||
Uri uri = Uri.parse("alipayqr://platformapi/startapp?saId=10000007");
|
|
||||||
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
|
|
||||||
startActivity(intent);
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
Button button5 = findViewById(R.id.button5);
|
|
||||||
//点击
|
|
||||||
button5.setOnClickListener(new View.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(View view) {
|
|
||||||
Uri uri1 = Uri.parse("alipayqr://platformapi/startapp?saId=20000056");
|
|
||||||
Intent intent1 = new Intent(Intent.ACTION_VIEW, uri1);
|
|
||||||
startActivity(intent1);
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
Button button6 = findViewById(R.id.button6);
|
|
||||||
//点击
|
|
||||||
button6.setOnClickListener(new View.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(View view) {
|
|
||||||
Uri uri2 = Uri.parse("alipayqr://platformapi/startapp?saId=20000123");
|
|
||||||
Intent intent2 = new Intent(Intent.ACTION_VIEW, uri2);
|
|
||||||
startActivity(intent2);
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
Button button7 = findViewById(R.id.button8);
|
|
||||||
//点击
|
|
||||||
button7.setOnClickListener(new View.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(View view) {
|
|
||||||
Intent addIntent = new Intent(Intent.ACTION_INSERT, Uri.withAppendedPath(Uri.parse("content://com.android.contacts"), "contacts"));
|
|
||||||
addIntent.setType("vnd.android.cursor.dir/person");
|
|
||||||
addIntent.setType("vnd.android.cursor.dir/contact");
|
|
||||||
addIntent.setType("vnd.android.cursor.dir/raw_contact");
|
|
||||||
boolean number = false;
|
|
||||||
addIntent.putExtra(ContactsContract.Intents.Insert.NAME, number);
|
|
||||||
|
|
||||||
boolean numberForNewConstant = false;
|
|
||||||
addIntent.putExtra(android.provider.ContactsContract.Intents.Insert.PHONE, numberForNewConstant);
|
|
||||||
startActivity(addIntent);
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
Button button8 = findViewById(R.id.button7);
|
|
||||||
//点击
|
|
||||||
button8.setOnClickListener(new View.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(View view) {
|
|
||||||
//调用系统方法拨打电话
|
|
||||||
Intent intent = new Intent();
|
|
||||||
intent.setAction(Intent.ACTION_CALL);
|
|
||||||
intent.setData(Uri.parse("tel:" + "15607989193"));
|
|
||||||
startActivity(intent);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean askPermissions() {
|
|
||||||
return (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP_MR1);
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean shouldAskPermissions() {
|
|
||||||
String[] permissions = {
|
|
||||||
"android.permission.CALL_PHONE"
|
|
||||||
};
|
|
||||||
int requestCode = 200;
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
|
||||||
requestPermissions(permissions, requestCode);
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,42 +0,0 @@
|
|||||||
package com.example.myapplication;
|
|
||||||
|
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
|
||||||
|
|
||||||
import android.annotation.SuppressLint;
|
|
||||||
import android.content.Intent;
|
|
||||||
import android.net.Uri;
|
|
||||||
import android.os.Bundle;
|
|
||||||
import android.view.View;
|
|
||||||
import android.widget.Button;
|
|
||||||
import android.widget.Toast;
|
|
||||||
|
|
||||||
public class zhaoxun extends AppCompatActivity {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
|
||||||
super.onCreate(savedInstanceState);
|
|
||||||
setContentView(R.layout.activity_zhaoxun);
|
|
||||||
Button buttonitem=findViewById(R.id.myitem);
|
|
||||||
Button buttonmap=findViewById(R.id.map);
|
|
||||||
buttonitem.setOnClickListener(new View.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(View view) {//Intent
|
|
||||||
/* Toast.makeText(zhaoxun.this,"正在打开地图",Toast.LENGTH_SHORT).show();
|
|
||||||
Intent intent=new Intent(zhaoxun.this,MapActivity1.class);
|
|
||||||
startActivity(intent);*/
|
|
||||||
Intent intent=new Intent(zhaoxun.this,itemfound.class);
|
|
||||||
startActivity(intent);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
buttonmap.setOnClickListener(new View.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(View view) {//Intent
|
|
||||||
Toast.makeText(zhaoxun.this,"正在打开地图",Toast.LENGTH_SHORT).show();
|
|
||||||
Intent intent=new Intent(zhaoxun.this,MapActivity1.class);
|
|
||||||
startActivity(intent);
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,30 +0,0 @@
|
|||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
xmlns:aapt="http://schemas.android.com/aapt"
|
|
||||||
android:width="108dp"
|
|
||||||
android:height="108dp"
|
|
||||||
android:viewportWidth="108"
|
|
||||||
android:viewportHeight="108">
|
|
||||||
<path android:pathData="M31,63.928c0,0 6.4,-11 12.1,-13.1c7.2,-2.6 26,-1.4 26,-1.4l38.1,38.1L107,108.928l-32,-1L31,63.928z">
|
|
||||||
<aapt:attr name="android:fillColor">
|
|
||||||
<gradient
|
|
||||||
android:endX="85.84757"
|
|
||||||
android:endY="92.4963"
|
|
||||||
android:startX="42.9492"
|
|
||||||
android:startY="49.59793"
|
|
||||||
android:type="linear">
|
|
||||||
<item
|
|
||||||
android:color="#44000000"
|
|
||||||
android:offset="0.0" />
|
|
||||||
<item
|
|
||||||
android:color="#00000000"
|
|
||||||
android:offset="1.0" />
|
|
||||||
</gradient>
|
|
||||||
</aapt:attr>
|
|
||||||
</path>
|
|
||||||
<path
|
|
||||||
android:fillColor="#FFFFFF"
|
|
||||||
android:fillType="nonZero"
|
|
||||||
android:pathData="M65.3,45.828l3.8,-6.6c0.2,-0.4 0.1,-0.9 -0.3,-1.1c-0.4,-0.2 -0.9,-0.1 -1.1,0.3l-3.9,6.7c-6.3,-2.8 -13.4,-2.8 -19.7,0l-3.9,-6.7c-0.2,-0.4 -0.7,-0.5 -1.1,-0.3C38.8,38.328 38.7,38.828 38.9,39.228l3.8,6.6C36.2,49.428 31.7,56.028 31,63.928h46C76.3,56.028 71.8,49.428 65.3,45.828zM43.4,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2c-0.3,-0.7 -0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C45.3,56.528 44.5,57.328 43.4,57.328L43.4,57.328zM64.6,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2s-0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C66.5,56.528 65.6,57.328 64.6,57.328L64.6,57.328z"
|
|
||||||
android:strokeWidth="1"
|
|
||||||
android:strokeColor="#00000000" />
|
|
||||||
</vector>
|
|
Before Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 6.0 KiB |
Before Width: | Height: | Size: 5.3 KiB |
Before Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 5.8 KiB |
Before Width: | Height: | Size: 4.9 KiB |
Before Width: | Height: | Size: 5.6 KiB |
Before Width: | Height: | Size: 7.2 KiB |
Before Width: | Height: | Size: 4.8 KiB |
Before Width: | Height: | Size: 5.5 KiB |
Before Width: | Height: | Size: 4.8 KiB |
Before Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 4.6 KiB |
Before Width: | Height: | Size: 5.3 KiB |
Before Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 4.1 KiB |
Before Width: | Height: | Size: 6.0 KiB |
Before Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 4.7 KiB |
Before Width: | Height: | Size: 5.5 KiB |
Before Width: | Height: | Size: 4.5 KiB |
Before Width: | Height: | Size: 5.1 KiB |
Before Width: | Height: | Size: 5.1 KiB |
Before Width: | Height: | Size: 5.2 KiB |
Before Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 4.7 KiB |
Before Width: | Height: | Size: 6.4 KiB |
Before Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 5.2 KiB |