diff --git a/app/build.gradle b/app/build.gradle
index db4519d..e50e8df 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -28,12 +28,8 @@ android {
}
manifestPlaceholders = [
- XG_ACCESS_ID : "1580013523",
- XG_ACCESS_KEY: "ASJ3MCYWCTTF",
- ]
-
- manifestPlaceholders = [
- AMAP_KEY: "ff08045221483b649cc41e77ee2ad941"
+ XG_ACCESS_ID : "1500033697",
+ XG_ACCESS_KEY: "A0PFUHEPEKKM",
]
}
@@ -180,8 +176,8 @@ dependencies {
//bindView
implementation 'com.jakewharton:butterknife:10.2.3'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.3'
- //高德地图定位
- implementation 'com.amap.api:location:5.1.0'
+ //百度地图
+ implementation 'com.baidu.lbsyun:BaiduMapSDK_Location:9.1.8'
//MMKV
implementation 'com.tencent:mmkv-static:1.2.14'
implementation 'com.tencent.tpns:tpns:1.3.7.0-release'
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index d51de96..deba34e 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -80,9 +80,8 @@
android:resizeableActivity="true"
android:resumeWhilePausing="true"
android:stateNotNeeded="true"
- android:configChanges="screenSize|keyboardHidden|orientation"
android:taskAffinity="com.example.taskaffinity.newtask"
- >
+ android:windowSoftInputMode="adjustPan">
@@ -162,15 +161,15 @@
-
-
-
-
+
+ android:name="com.baidu.location.f"
+ android:enabled="true"
+ android:process=":remote" />
+
+
+ android:value="1500033697" />
+ android:value="A0PFUHEPEKKM" />
+
\ No newline at end of file
diff --git a/app/src/main/java/com/uiuios/aios/activity/weather/WeatherPresenter.java b/app/src/main/java/com/uiuios/aios/activity/weather/WeatherPresenter.java
index e949c77..74ff2e0 100644
--- a/app/src/main/java/com/uiuios/aios/activity/weather/WeatherPresenter.java
+++ b/app/src/main/java/com/uiuios/aios/activity/weather/WeatherPresenter.java
@@ -5,7 +5,7 @@ import android.util.Log;
import androidx.annotation.NonNull;
-import com.amap.api.location.AMapLocation;
+import com.baidu.location.BDLocation;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.qweather.sdk.bean.weather.WeatherDailyBean;
@@ -58,10 +58,10 @@ public class WeatherPresenter implements WeatherContact.Presenter {
@Override
public void getLocation() {
- AMapLocation aMapLocation = AmapManager.getInstance().getNowAMapLocation();
+ BDLocation bdLocation = AmapManager.getInstance().getNowMapLocation();
String location = "未知";
- if (aMapLocation != null) {
- location = aMapLocation.getCity() + "\t" + aMapLocation.getDistrict();
+ if (bdLocation != null) {
+ location = bdLocation.getCity() + "\t" + bdLocation.getDistrict();
}
mView.setLocation(location);
}
diff --git a/app/src/main/java/com/uiuios/aios/base/BaseApplication.java b/app/src/main/java/com/uiuios/aios/base/BaseApplication.java
index 491291b..dac1355 100644
--- a/app/src/main/java/com/uiuios/aios/base/BaseApplication.java
+++ b/app/src/main/java/com/uiuios/aios/base/BaseApplication.java
@@ -62,7 +62,7 @@ public class BaseApplication extends Application {
tpushInit();
AppUsedTimeUtils.init(this);
AlarmUtils.init(this);
- HeConfig.init("HE2206151627491952", "03125bfee8934cf4b640af48e8187c9d");
+ HeConfig.init("HE2210211540591362", "fe42a7bb59b14eefb27eea4fb2c40e99");
//切换至开发版服务
HeConfig.switchToDevService();
AmapManager.init(this);
diff --git a/app/src/main/java/com/uiuios/aios/fragment/CustomFragment.java b/app/src/main/java/com/uiuios/aios/fragment/CustomFragment.java
index e81f659..e124b5a 100644
--- a/app/src/main/java/com/uiuios/aios/fragment/CustomFragment.java
+++ b/app/src/main/java/com/uiuios/aios/fragment/CustomFragment.java
@@ -26,12 +26,14 @@ import android.widget.ImageView;
import android.widget.TextView;
import androidx.constraintlayout.widget.ConstraintLayout;
+import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
-import com.amap.api.location.AMapLocation;
-import com.amap.api.location.AMapLocationListener;
+import com.baidu.location.BDAbstractLocationListener;
+import com.baidu.location.BDLocation;
+import com.baidu.location.LocationClient;
import com.blankj.utilcode.util.NetworkUtils;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
@@ -111,8 +113,8 @@ public class CustomFragment extends Fragment implements NetworkUtils.OnNetworkSt
ConstraintLayout cl_ai;
@BindView(R.id.cl_appstore)
ConstraintLayout cl_appstore;
- @BindView(R.id.cl_exit)
- ConstraintLayout cl_exit;
+// @BindView(R.id.cl_exit)
+// ConstraintLayout cl_exit;
// @BindView(R.id.cl_battery)
@@ -152,7 +154,7 @@ public class CustomFragment extends Fragment implements NetworkUtils.OnNetworkSt
private String TAG = CustomFragment.class.getSimpleName();
// private int[] mShaderColors = new int[]{0xFFfa3db5, 0xFFF8867E, 0xFFF79F6B, 0xFFF79F6B, 0xFFF79F6B, 0xFFF8867E, 0xFFfa3db5};
- private int[] mShaderColors = new int[]{0xFF27602f, 0xFF27602f, 0xFF27602f, 0xFF27602f, 0xFF27602f, 0xFF27602f, 0xFF27602f};
+ private int[] mShaderColors = new int[]{0xFFff9300, 0xFFff9300, 0xFFff9300, 0xFFff9300, 0xFFff9300, 0xFFff9300, 0xFFff9300};
private int[] mShaderColorsRed = new int[]{0xFFFF0000, 0xFFFF0000, 0xFFFF0000, 0xFFFF0000, 0xFFFF0000, 0xFFFF0000, 0xFFFF0000};
private View rootView;
private List alarmItemList;
@@ -456,12 +458,12 @@ public class CustomFragment extends Fragment implements NetworkUtils.OnNetworkSt
ApkUtils.openApp(mContext, "com.uiuios.appstore");
}
});
- cl_exit.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- showPassword();
- }
- });
+// cl_exit.setOnClickListener(new View.OnClickListener() {
+// @Override
+// public void onClick(View view) {
+// showPassword();
+// }
+// });
refreshMemory();
}
@@ -687,15 +689,25 @@ public class CustomFragment extends Fragment implements NetworkUtils.OnNetworkSt
}
private void initAmap() {
- AmapManager.getInstance().startLocation(new AMapLocationListener() {
+ LocationClient locationClient = AmapManager.getInstance().getLocationClient();
+ locationClient.stop();
+ locationClient.start();
+ locationClient.registerLocationListener(new BDAbstractLocationListener() {
@Override
- public void onLocationChanged(AMapLocation aMapLocation) {
- if (aMapLocation.getErrorCode() == 0) {
- String city = aMapLocation.getCity();
- tv_location.setText(city);
- getweather(aMapLocation.getLongitude(), aMapLocation.getLatitude());
- } else {
-
+ public void onReceiveLocation(BDLocation bdLocation) {
+ Log.e(TAG, "onReceiveLocation: ");
+ switch (bdLocation.getLocType()) {
+ case BDLocation.TypeGpsLocation:// GPS定位结果
+ case BDLocation.TypeNetWorkLocation:// 网络定位结果
+ case BDLocation.TypeOffLineLocation:// 离线定位结果
+ String city = bdLocation.getCity();
+ tv_location.setText(city);
+ getweather(bdLocation.getLongitude(), bdLocation.getLatitude());
+ break;
+ default:
+ BDLocation location = AmapManager.getInstance().getNowMapLocation();
+ getweather(location.getLongitude(), location.getLatitude());
+ break;
}
}
});
@@ -816,6 +828,20 @@ public class CustomFragment extends Fragment implements NetworkUtils.OnNetworkSt
// iv_pic.setImageDrawable(mContext.getDrawable(resId));
tv_temp.setText(now.getTemp() + "℃");
tv_weather.setText(now.getText());
+ String iconDay = weatherBean.getNow().getIcon();
+ Log.e("getweather", "onSuccess: iconDay = " + iconDay);
+ switch (iconDay) {
+ case "100":
+ case "150":
+ cl_weather.setBackground(ContextCompat.getDrawable(mContext, R.drawable.background_weather_sun));
+ break;
+ case "102":
+ case "152":
+ cl_weather.setBackground(ContextCompat.getDrawable(mContext, R.drawable.background_weather_sunny));
+ break;
+ default:
+ cl_weather.setBackground(ContextCompat.getDrawable(mContext, R.drawable.background_weather_rain));
+ }
} else {
//在此查看返回数据失败的原因
Code code = weatherBean.getCode();
diff --git a/app/src/main/java/com/uiuios/aios/manager/AmapManager.java b/app/src/main/java/com/uiuios/aios/manager/AmapManager.java
index deaf57a..3e6670a 100644
--- a/app/src/main/java/com/uiuios/aios/manager/AmapManager.java
+++ b/app/src/main/java/com/uiuios/aios/manager/AmapManager.java
@@ -4,35 +4,43 @@ import android.annotation.SuppressLint;
import android.content.Context;
import android.util.Log;
-import com.amap.api.location.AMapLocation;
-import com.amap.api.location.AMapLocationClient;
-import com.amap.api.location.AMapLocationClientOption;
-import com.amap.api.location.AMapLocationListener;
+import com.baidu.location.BDAbstractLocationListener;
+import com.baidu.location.BDLocation;
+import com.baidu.location.LocationClient;
+import com.baidu.location.LocationClientOption;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.tencent.mmkv.MMKV;
+import com.uiuios.aios.utils.GsonUtils;
import java.lang.reflect.Type;
public class AmapManager {
- private String TAG = AmapManager.class.getSimpleName();
- private static final String AMAPLOCATION_JSON_KEY = "AMAPLOCATION_JSON_STRING";
- public static final String LONGITUDE_KEY = "amap_longitude_key";
- public static final String LATITUDE_KEY = "amap_latitude_key";
- public static final String ADDRESS_KEY = "amap_address_key";
+ private static final String TAG = AmapManager.class.getSimpleName();
@SuppressLint("StaticFieldLeak")
private static AmapManager sInstance;
private Context mContext;
+ @SuppressLint("StaticFieldLeak")
+ private LocationClient mLocationClient = null;
+ private LocationClientOption mOption;
+ private BDLocation mLocation;
private MMKV mMMKV = MMKV.defaultMMKV();
- private AMapLocationClient locationClient = null;
- private AMapLocation nowAMapLocation;
+ private static final String AMAPLOCATION_JSON_KEY = "MAPLOCATION_JSON_STRING";
+ public static final String LONGITUDE_KEY = "map_longitude_key";
+ public static final String LATITUDE_KEY = "map_latitude_key";
+ public static final String ADDRESS_KEY = "map_address_key";
+ public static final String ERROR_KEY = "map_error_key";
private AmapManager(Context context) {
this.mContext = context;
+ initAmap();
}
public static void init(Context context) {
+ if (context == null) {
+ throw new RuntimeException("Context is NULL");
+ }
if (sInstance == null) {
sInstance = new AmapManager(context);
}
@@ -42,100 +50,341 @@ public class AmapManager {
if (sInstance == null) {
throw new IllegalStateException("You must be init AmapManager first");
}
-
return sInstance;
}
- public AMapLocationClient getLocationClient() {
- if (null == locationClient) {
+ public void initAmap() {
+ mLocationClient = new LocationClient(mContext);
+ mLocationClient.setLocOption(getDefaultLocationClientOption());
+ mLocationClient.registerLocationListener(mListener);
+ mLocationClient.stop();
+ mLocationClient.start();
+ }
+
+
+ public LocationClient getLocationClient() {
+ if (mLocationClient == null) {
initAmap();
}
- return locationClient;
+ return mLocationClient;
}
- public void initAmap() {
- locationClient = new AMapLocationClient(mContext);
- AMapLocationClientOption option = new AMapLocationClientOption();
- option.setLocationPurpose(AMapLocationClientOption.AMapLocationPurpose.SignIn);
- option.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);
- option.setNeedAddress(true);
- //获取一次定位结果:
- //该方法默认为false。
- option.setOnceLocation(true);
- //获取最近3s内精度最高的一次定位结果:
- //设置setOnceLocationLatest(boolean b)接口为true,启动定位时SDK会返回最近3s内精度最高的一次定位结果。
- // 如果设置其为true,setOnceLocation(boolean b)接口也会被设置为true,反之不会,默认为false。
- option.setOnceLocationLatest(true);
- locationClient.setLocationOption(option);
- //设置定位模式为AMapLocationMode.Hight_Accuracy,高精度模式。
- //设置定位监听
- locationClient.setLocationListener(new AMapLocationListener() {
- @Override
- public void onLocationChanged(AMapLocation aMapLocation) {
- //errCode等于0代表定位成功,其他的为定位失败,具体的可以参照官网定位错误码说明
- if (aMapLocation.getErrorCode() == 0) {
- Log.e(TAG, "onLocationChanged: " + "定位成功");
- Log.e(TAG, "onLocationChanged: " + aMapLocation.getAddress());
- Log.e(TAG, "onLocationChanged: getLongitude = " + aMapLocation.getLongitude());
- mMMKV.encode(LONGITUDE_KEY, String.valueOf(aMapLocation.getLongitude()));
- Log.e(TAG, "onLocationChanged: getLatitude = " + aMapLocation.getLatitude());
- mMMKV.encode(LATITUDE_KEY, String.valueOf(aMapLocation.getLatitude()));
- Log.e(TAG, "onLocationChanged: getAddress = " + aMapLocation.getAddress());
- mMMKV.encode(ADDRESS_KEY, aMapLocation.getAddress());
- } else {
- //定位失败
- Log.e(TAG, "onLocationChanged: " + "定位失败");
- Log.e(TAG, "onLocationChanged: " + aMapLocation.getErrorInfo());
- }
- }
- });
- //设置场景模式后最好调用一次stop,再调用start以保证场景模式生效
- locationClient.stopLocation();
- locationClient.startLocation();
- Log.e(TAG, "initAmap: " + "startLocation");
- }
-
- public AMapLocation getNowAMapLocation() {
- if (nowAMapLocation == null) {
+ public BDLocation getNowMapLocation() {
+ if (mLocation == null) {
String aMapLocationjson = mMMKV.decodeString(AMAPLOCATION_JSON_KEY, "");
- Type type = new TypeToken() {
+ Type type = new TypeToken() {
}.getType();
- AMapLocation aMapLocation = new Gson().fromJson(aMapLocationjson, type);
- return aMapLocation;
+ BDLocation bdLocation = new Gson().fromJson(aMapLocationjson, type);
+ return bdLocation;
}
- return this.nowAMapLocation;
- }
-
- public void startLocation(AMapLocationListener aMapLocationListener) {
- initAmap();
- locationClient.stopLocation();
- locationClient.startLocation();
- locationClient.setLocationListener(new AMapLocationListener() {
- @Override
- public void onLocationChanged(AMapLocation aMapLocation) {
- Log.d(TAG, "onLocationChanged: " + aMapLocation.toStr());
- if (aMapLocation.getErrorCode() == 0) {
- nowAMapLocation = aMapLocation;
- mMMKV.encode(AMAPLOCATION_JSON_KEY, aMapLocation.toStr());
- mMMKV.encode(LONGITUDE_KEY, String.valueOf(aMapLocation.getLongitude()));
- mMMKV.encode(LATITUDE_KEY, String.valueOf(aMapLocation.getLatitude()));
- mMMKV.encode(ADDRESS_KEY, aMapLocation.getAddress());
- } else {
- mMMKV.encode(AMAPLOCATION_JSON_KEY, "");
- }
- aMapLocationListener.onLocationChanged(aMapLocation);
- }
- });
+ return this.mLocation;
}
public String getLocation() {
- AMapLocation aMapLocation = getNowAMapLocation();
- if (aMapLocation == null) {
+ BDLocation bdLocation = getNowMapLocation();
+ if (bdLocation == null) {
return "0,0";
} else {
- String location = aMapLocation.getLongitude() + "," + aMapLocation.getLatitude();
+ String location = bdLocation.getLongitude() + "," + bdLocation.getLatitude();
Log.e(TAG, "getLocation: " + location);
return location;
}
}
+
+
+ /***
+ *
+ * @return DefaultLocationClientOption 默认O设置
+ */
+ public LocationClientOption getDefaultLocationClientOption() {
+ if (mOption == null) {
+ mOption = new LocationClientOption();
+ mOption.setCoorType("bd09ll"); // 可选,默认gcj02,设置返回的定位结果坐标系,如果配合百度地图使用,建议设置为bd09ll;
+ mOption.setScanSpan(0); // 可选,默认0,即仅定位一次,设置发起连续定位请求的间隔需要大于等于1000ms才是有效的
+ mOption.setIsNeedAddress(true); // 可选,设置是否需要地址信息,默认不需要
+ mOption.setIsNeedLocationDescribe(true); // 可选,设置是否需要地址描述
+ mOption.setNeedDeviceDirect(false); // 可选,设置是否需要设备方向结果
+ mOption.setLocationNotify(false); // 可选,默认false,设置是否当gps有效时按照1S1次频率输出GPS结果
+ mOption.setIgnoreKillProcess(true); // 可选,默认true,定位SDK内部是一个SERVICE,并放到了独立进程,设置是否在stop
+ mOption.setIsNeedLocationDescribe(true); // 可选,默认false,设置是否需要位置语义化结果,可以在BDLocation
+ mOption.setIsNeedLocationPoiList(true); // 可选,默认false,设置是否需要POI结果,可以在BDLocation
+ mOption.SetIgnoreCacheException(false); // 可选,默认false,设置是否收集CRASH信息,默认收集
+ mOption.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy); // 可选,默认高精度,设置定位模式,高精度,低功耗,仅设备,模糊
+ mOption.setIsNeedAltitude(false); // 可选,默认false,设置定位时是否需要海拔信息,默认不需要,除基础定位版本都可用
+ // 可选,设置首次定位时选择定位速度优先还是定位准确性优先,默认为速度优先
+// mOption.setFirstLocType(LocationClientOption.FirstLocType.SPEED_IN_FIRST_LOC);
+ }
+ return mOption;
+ }
+
+
+ /*****
+ *
+ * 定位结果回调,重写onReceiveLocation方法,可以直接拷贝如下代码到自己工程中修改
+ *
+ */
+ private BDAbstractLocationListener mListener = new BDAbstractLocationListener() {
+
+ /**
+ * 定位请求回调函数
+ * @param location 定位结果
+ */
+ @Override
+ public void onReceiveLocation(BDLocation location) {
+ if (null != location) {
+ switch (location.getLocType()) {
+ case BDLocation.TypeGpsLocation:// GPS定位结果
+ case BDLocation.TypeNetWorkLocation:// 网络定位结果
+ case BDLocation.TypeOffLineLocation:// 离线定位结果
+ mMMKV.encode(AMAPLOCATION_JSON_KEY, GsonUtils.toJsonString(location));
+ Log.e(TAG, "onLocationChanged: " + "定位成功");
+ Log.e(TAG, "onLocationChanged: longitude = " + location.getLongitude());
+ Log.e(TAG, "onLocationChanged: latitude = " + location.getLatitude());
+ Log.e(TAG, "onLocationChanged: " + location.getAddrStr() + location.getLocationDescribe());
+ mMMKV.encode(ADDRESS_KEY, location.getAddrStr() + location.getLocationDescribe());
+ mMMKV.encode(LONGITUDE_KEY, location.getLongitude());
+ mMMKV.encode(LATITUDE_KEY, location.getLatitude());
+ mMMKV.encode(ERROR_KEY, "-");
+ break;
+ case BDLocation.TypeServerError:
+ Log.e(TAG, "onReceiveLocation: " + "服务端网络定位失败");
+ mMMKV.encode(ERROR_KEY, "服务端网络定位失败,可以反馈IMEI号和大体定位时间到loc-bugs@baidu.com,会有人追查原因");
+ break;
+ case BDLocation.TypeNetWorkException:
+ Log.e(TAG, "onReceiveLocation: " + "网络不同导致定位失败,请检查网络是否通畅");
+ mMMKV.encode(ERROR_KEY, "网络不同导致定位失败,请检查网络是否通畅");
+ break;
+ case BDLocation.TypeCriteriaException:
+ Log.e(TAG, "onReceiveLocation: " + "无法获取有效定位依据导致定位失败");
+ mMMKV.encode(ERROR_KEY, "无法获取有效定位依据导致定位失败,一般是由于手机的原因,处于飞行模式下一般会造成这种结果,可以试着重启手机");
+ break;
+ default:
+ }
+ }
+// if (null != location && location.getLocType() != BDLocation.TypeServerError) {
+// StringBuffer sb = new StringBuffer(256);
+// sb.append("time : ");
+// /**
+// * 时间也可以使用systemClock.elapsedRealtime()方法 获取的是自从开机以来,每次回调的时间;
+// * location.getTime() 是指服务端出本次结果的时间,如果位置不发生变化,则时间不变
+// */
+// sb.append(location.getTime());
+// sb.append("\nsysTime : ");
+// sb.append(SystemClock.elapsedRealtime());
+// sb.append("\nlocType : ");// 定位类型
+// sb.append(location.getLocType());
+// sb.append("\nlocType description : ");// *****对应的定位类型说明*****
+// sb.append(location.getLocTypeDescription());
+// sb.append("\nlatitude : ");// 纬度
+// sb.append(location.getLatitude());
+// sb.append("\nlongtitude : ");// 经度
+// sb.append(location.getLongitude());
+// sb.append("\nradius : ");// 半径
+// sb.append(location.getRadius());
+// sb.append("\nCountryCode : ");// 国家码
+// sb.append(location.getCountryCode());
+// sb.append("\nProvince : ");// 获取省份
+// sb.append(location.getProvince());
+// sb.append("\nCountry : ");// 国家名称
+// sb.append(location.getCountry());
+// sb.append("\ncitycode : ");// 城市编码
+// sb.append(location.getCityCode());
+// sb.append("\ncity : ");// 城市
+// sb.append(location.getCity());
+// sb.append("\nDistrict : ");// 区
+// sb.append(location.getDistrict());
+// sb.append("\nTown : ");// 获取镇信息
+// sb.append(location.getTown());
+// sb.append("\nStreet : ");// 街道
+// sb.append(location.getStreet());
+// sb.append("\naddr : ");// 地址信息
+// sb.append(location.getAddrStr());
+// sb.append("\nStreetNumber : ");// 获取街道号码
+// sb.append(location.getStreetNumber());
+// sb.append("\nUserIndoorState: ");// *****返回用户室内外判断结果*****
+// sb.append(location.getUserIndoorState());
+// sb.append("\nDirection(not all devices have value): ");
+// sb.append(location.getDirection());// 方向
+// sb.append("\nlocationdescribe: ");
+// sb.append(location.getLocationDescribe());// 位置语义化信息
+// sb.append("\nPoi: ");// POI信息
+// if (location.getPoiList() != null && !location.getPoiList().isEmpty()) {
+// for (int i = 0; i < location.getPoiList().size(); i++) {
+// Poi poi = (Poi) location.getPoiList().get(i);
+// sb.append("poiName:");
+// sb.append(poi.getName() + ", ");
+// sb.append("poiTag:");
+// sb.append(poi.getTags() + "\n");
+// }
+// }
+// if (location.getPoiRegion() != null) {
+// sb.append("PoiRegion: ");// 返回定位位置相对poi的位置关系,仅在开发者设置需要POI信息时才会返回,在网络不通或无法获取时有可能返回null
+// PoiRegion poiRegion = location.getPoiRegion();
+// sb.append("DerectionDesc:"); // 获取POIREGION的位置关系,ex:"内"
+// sb.append(poiRegion.getDerectionDesc() + "; ");
+// sb.append("Name:"); // 获取POIREGION的名字字符串
+// sb.append(poiRegion.getName() + "; ");
+// sb.append("Tags:"); // 获取POIREGION的类型
+// sb.append(poiRegion.getTags() + "; ");
+// sb.append("\nSDK版本: ");
+// }
+//// int permission = checkPermission(getApplicationContext(), android.Manifest.permission.ACCESS_FINE_LOCATION);
+//// sb.append("\npermsission: " + permission);
+//// sb.append(locationService.getSDKVersion()); // 获取SDK版本
+// if (location.getLocType() == BDLocation.TypeGpsLocation) {// GPS定位结果
+// sb.append("\nspeed : ");
+// sb.append(location.getSpeed());// 速度 单位:km/h
+// sb.append("\nsatellite : ");
+// sb.append(location.getSatelliteNumber());// 卫星数目
+// sb.append("\nheight : ");
+// sb.append(location.getAltitude());// 海拔高度 单位:米
+// sb.append("\ngps status : ");
+// sb.append(location.getGpsAccuracyStatus());// *****gps质量判断*****
+// sb.append("\ndescribe : ");
+// sb.append("gps定位成功");
+// } else if (location.getLocType() == BDLocation.TypeNetWorkLocation) {// 网络定位结果
+// // 运营商信息
+// if (location.hasAltitude()) {// *****如果有海拔高度*****
+// sb.append("\nheight : ");
+// sb.append(location.getAltitude());// 单位:米
+// }
+// sb.append("\noperationers : ");// 运营商信息
+// sb.append(location.getOperators());
+// sb.append("\ndescribe : ");
+// sb.append("网络定位成功");
+// } else if (location.getLocType() == BDLocation.TypeOffLineLocation) {// 离线定位结果
+// sb.append("\ndescribe : ");
+// sb.append("离线定位成功,离线定位结果也是有效的");
+// } else if (location.getLocType() == BDLocation.TypeServerError) {
+// sb.append("\ndescribe : ");
+// sb.append("服务端网络定位失败,可以反馈IMEI号和大体定位时间到loc-bugs@baidu.com,会有人追查原因");
+// } else if (location.getLocType() == BDLocation.TypeNetWorkException) {
+// sb.append("\ndescribe : ");
+// sb.append("网络不同导致定位失败,请检查网络是否通畅");
+// } else if (location.getLocType() == BDLocation.TypeCriteriaException) {
+// sb.append("\ndescribe : ");
+// sb.append("无法获取有效定位依据导致定位失败,一般是由于手机的原因,处于飞行模式下一般会造成这种结果,可以试着重启手机");
+// }
+//// logMsg(sb.toString(), tag);
+// Log.e(TAG, "onReceiveLocation: " + sb);
+// }
+ Log.e(TAG, "AmapAddress: " + mMMKV.decodeString(ADDRESS_KEY, "-"));
+ Log.e(TAG, "AmapError: " + mMMKV.decodeString(ERROR_KEY, "-"));
+ }
+
+ @Override
+ public void onConnectHotSpotMessage(String s, int i) {
+ super.onConnectHotSpotMessage(s, i);
+ }
+
+ /**
+ * 回调定位诊断信息,开发者可以根据相关信息解决定位遇到的一些问题
+ * @param locType 当前定位类型
+ * @param diagnosticType 诊断类型(1~9)
+ * @param diagnosticMessage 具体的诊断信息释义
+ */
+ @Override
+ public void onLocDiagnosticMessage(int locType, int diagnosticType, String diagnosticMessage) {
+ super.onLocDiagnosticMessage(locType, diagnosticType, diagnosticMessage);
+// int tag = 2;
+ StringBuffer sb = new StringBuffer(256);
+ sb.append("诊断结果: ");
+ if (locType == BDLocation.TypeNetWorkLocation) {
+ if (diagnosticType == 1) {
+ sb.append("网络定位成功,没有开启GPS,建议打开GPS会更好");
+ sb.append("\n" + diagnosticMessage);
+ } else if (diagnosticType == 2) {
+ sb.append("网络定位成功,没有开启Wi-Fi,建议打开Wi-Fi会更好");
+ sb.append("\n" + diagnosticMessage);
+ }
+ } else if (locType == BDLocation.TypeOffLineLocationFail) {
+ if (diagnosticType == 3) {
+ sb.append("定位失败,请您检查您的网络状态");
+ sb.append("\n" + diagnosticMessage);
+ }
+ } else if (locType == BDLocation.TypeCriteriaException) {
+ if (diagnosticType == 4) {
+ sb.append("定位失败,无法获取任何有效定位依据");
+ sb.append("\n" + diagnosticMessage);
+ } else if (diagnosticType == 5) {
+ sb.append("定位失败,无法获取有效定位依据,请检查运营商网络或者Wi-Fi网络是否正常开启,尝试重新请求定位");
+ sb.append(diagnosticMessage);
+ } else if (diagnosticType == 6) {
+ sb.append("定位失败,无法获取有效定位依据,请尝试插入一张sim卡或打开Wi-Fi重试");
+ sb.append("\n" + diagnosticMessage);
+ } else if (diagnosticType == 7) {
+ sb.append("定位失败,飞行模式下无法获取有效定位依据,请关闭飞行模式重试");
+ sb.append("\n" + diagnosticMessage);
+ } else if (diagnosticType == 9) {
+ sb.append("定位失败,无法获取任何有效定位依据");
+ sb.append("\n" + diagnosticMessage);
+ }
+ } else if (locType == BDLocation.TypeServerError) {
+ if (diagnosticType == 8) {
+ sb.append("定位失败,请确认您定位的开关打开状态,是否赋予APP定位权限");
+ sb.append("\n" + diagnosticMessage);
+ }
+ }
+ Log.e(TAG, "onLocationChanged: " + "定位失败");
+ mMMKV.encode(ERROR_KEY, sb.toString());
+ Log.e(TAG, "onLocDiagnosticMessage: " + sb);
+// logMsg(sb.toString(), tag);
+ }
+ };
+
+// public AMapLocationClient getLocationClient() {
+// if (null == locationClient) {
+// initAmap();
+// }
+// return locationClient;
+// }
+
+// public void initAmap() {
+// locationClient = new AMapLocationClient(mContext);
+// AMapLocationClientOption option = new AMapLocationClientOption();
+// option.setLocationPurpose(AMapLocationClientOption.AMapLocationPurpose.SignIn);
+// option.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);
+// option.setNeedAddress(true);
+// //获取一次定位结果:
+// //该方法默认为false。
+// option.setOnceLocation(true);
+// //获取最近3s内精度最高的一次定位结果:
+// //设置setOnceLocationLatest(boolean b)接口为true,启动定位时SDK会返回最近3s内精度最高的一次定位结果。
+// // 如果设置其为true,setOnceLocation(boolean b)接口也会被设置为true,反之不会,默认为false。
+// option.setOnceLocationLatest(true);
+// locationClient.setLocationOption(option);
+// //设置定位模式为AMapLocationMode.Hight_Accuracy,高精度模式。
+// //设置定位监听
+// locationClient.setLocationListener(new AMapLocationListener() {
+//
+// @Override
+// public void onLocationChanged(AMapLocation aMapLocation) {
+// StringBuilder sb = new StringBuilder();
+// //errCode等于0代表定位成功,其他的为定位失败,具体的可以参照官网定位错误码说明
+// if (aMapLocation.getErrorCode() == 0) {
+// Log.e(TAG, "onLocationChanged: " + "定位成功");
+// Log.e(TAG, "onLocationChanged: " + aMapLocation.getAddress());
+// sb.append(aMapLocation.getAddress()).append("\n");
+// mMMKV.encode( ADDRESS_KEY, aMapLocation.getAddress());
+// mMMKV.encode( LONGITUDE_KEY, aMapLocation.getLongitude());
+// mMMKV.encode( LATITUDE_KEY, aMapLocation.getLatitude());
+// mMMKV.encode( ERROR_KEY, "");
+// } else {
+// //定位失败
+// sb.append("定位失败" + "\n");
+// Log.e(TAG, "onLocationChanged: " + "定位失败");
+// mMMKV.encode( ERROR_KEY, String.valueOf(aMapLocation.getErrorInfo()));
+// }
+// Log.e(TAG, (String) SPUtils.get(mContext, ADDRESS_KEY, "-"));
+// Log.e(TAG, (String) SPUtils.get(mContext, ERROR_KEY, "-"));
+// Log.e(TAG, "amap: " + sb.toString());
+// }
+// });
+// //设置场景模式后最好调用一次stop,再调用start以保证场景模式生效
+// locationClient.stopLocation();
+// locationClient.startLocation();
+// Log.e(TAG, "initAmap: " + "startLocation");
+// }
+
+
}
diff --git a/app/src/main/res/drawable-hdpi/home_appstore_icon.png b/app/src/main/res/drawable-hdpi/home_appstore_icon.png
index 69cc9c8..1cab329 100644
Binary files a/app/src/main/res/drawable-hdpi/home_appstore_icon.png and b/app/src/main/res/drawable-hdpi/home_appstore_icon.png differ
diff --git a/app/src/main/res/drawable-hdpi/home_contact_icon.png b/app/src/main/res/drawable-hdpi/home_contact_icon.png
index 784bc19..9d8be3c 100644
Binary files a/app/src/main/res/drawable-hdpi/home_contact_icon.png and b/app/src/main/res/drawable-hdpi/home_contact_icon.png differ
diff --git a/app/src/main/res/drawable-hdpi/home_health_code.png b/app/src/main/res/drawable-hdpi/home_health_code.png
index df8ba69..6daed8e 100644
Binary files a/app/src/main/res/drawable-hdpi/home_health_code.png and b/app/src/main/res/drawable-hdpi/home_health_code.png differ
diff --git a/app/src/main/res/drawable-hdpi/home_icon_clean.png b/app/src/main/res/drawable-hdpi/home_icon_clean.png
new file mode 100644
index 0000000..e161451
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/home_icon_clean.png differ
diff --git a/app/src/main/res/drawable-hdpi/home_sos_icon.png b/app/src/main/res/drawable-hdpi/home_sos_icon.png
index 4d0f991..2da460f 100644
Binary files a/app/src/main/res/drawable-hdpi/home_sos_icon.png and b/app/src/main/res/drawable-hdpi/home_sos_icon.png differ
diff --git a/app/src/main/res/drawable-hdpi/wallpaper.png b/app/src/main/res/drawable-hdpi/wallpaper.png
index 69167b4..dcbf09c 100644
Binary files a/app/src/main/res/drawable-hdpi/wallpaper.png and b/app/src/main/res/drawable-hdpi/wallpaper.png differ
diff --git a/app/src/main/res/layout-land/fragment_custom.xml b/app/src/main/res/layout-land/fragment_custom.xml
index 8e67606..e5d1cc1 100644
--- a/app/src/main/res/layout-land/fragment_custom.xml
+++ b/app/src/main/res/layout-land/fragment_custom.xml
@@ -20,33 +20,34 @@
android:id="@+id/cl_weather"
android:layout_width="0dp"
android:layout_height="match_parent"
- android:layout_marginStart="8dp"
- android:layout_marginTop="8dp"
- android:layout_marginEnd="4dp"
- android:layout_marginBottom="4dp"
+ android:layout_marginStart="@dimen/dp_4"
+ android:layout_marginTop="@dimen/dp_4"
+ android:layout_marginEnd="@dimen/dp_2"
+ android:layout_marginBottom="@dimen/dp_2"
android:layout_weight="3"
android:background="@drawable/custom_bg_weather">
+ app:layout_constraintTop_toTopOf="parent" />
@@ -55,25 +56,25 @@
android:id="@+id/tv_temp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginStart="16dp"
+ android:layout_marginEnd="@dimen/dp_36"
android:gravity="center_vertical"
android:text="10℃"
android:textColor="@color/white"
android:textSize="@dimen/sp_30"
android:textStyle="bold"
- app:layout_constraintBottom_toBottomOf="@+id/iv_pic"
- app:layout_constraintStart_toEndOf="@+id/iv_pic"
- app:layout_constraintTop_toTopOf="@+id/iv_pic"
- app:layout_constraintVertical_bias="0.296" />
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintVertical_bias="0.34" />
@@ -93,68 +94,59 @@
+ android:background="@drawable/custom_bg_white">
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -162,11 +154,11 @@
android:id="@+id/textView7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginStart="8dp"
- android:layout_marginTop="8dp"
+ android:layout_marginStart="@dimen/dp_8"
+ android:layout_marginTop="@dimen/dp_8"
android:text="紧急呼叫"
android:textColor="@color/lightGray"
- android:textSize="@dimen/sp_16"
+ android:textSize="@dimen/sp_15"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
@@ -205,7 +197,7 @@
-
+
@@ -214,11 +206,11 @@
-
-
+
+
-
+
@@ -249,50 +241,68 @@
+ android:background="@drawable/custom_bg_white"
+ tools:ignore="NestedWeights">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
@@ -300,10 +310,10 @@
android:id="@+id/cl_health"
android:layout_width="0dp"
android:layout_height="match_parent"
- android:layout_marginStart="4dp"
- android:layout_marginTop="4dp"
- android:layout_marginEnd="4dp"
- android:layout_marginBottom="8dp"
+ android:layout_marginStart="@dimen/dp_2"
+ android:layout_marginTop="@dimen/dp_2"
+ android:layout_marginEnd="@dimen/dp_2"
+ android:layout_marginBottom="@dimen/dp_4"
android:layout_weight="1"
android:background="@drawable/custom_bg_health">
@@ -311,11 +321,11 @@
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginStart="8dp"
- android:layout_marginTop="8dp"
+ android:layout_marginStart="@dimen/dp_8"
+ android:layout_marginTop="@dimen/dp_8"
android:text="健康码"
android:textColor="@color/white"
- android:textSize="@dimen/sp_16"
+ android:textSize="@dimen/sp_15"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
@@ -349,10 +359,10 @@
android:id="@+id/cl_contact"
android:layout_width="0dp"
android:layout_height="match_parent"
- android:layout_marginStart="4dp"
- android:layout_marginTop="4dp"
- android:layout_marginEnd="4dp"
- android:layout_marginBottom="8dp"
+ android:layout_marginStart="@dimen/dp_2"
+ android:layout_marginTop="@dimen/dp_2"
+ android:layout_marginEnd="@dimen/dp_2"
+ android:layout_marginBottom="@dimen/dp_4"
android:layout_weight="1"
android:background="@drawable/custom_bg_white">
@@ -360,11 +370,11 @@
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginStart="8dp"
- android:layout_marginTop="8dp"
+ android:layout_marginStart="@dimen/dp_8"
+ android:layout_marginTop="@dimen/dp_8"
android:text="通讯录"
android:textColor="@color/lightGray"
- android:textSize="@dimen/sp_16"
+ android:textSize="@dimen/sp_15"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
@@ -385,10 +395,10 @@
android:id="@+id/cl_appstore"
android:layout_width="0dp"
android:layout_height="match_parent"
- android:layout_marginStart="4dp"
- android:layout_marginTop="4dp"
- android:layout_marginEnd="8dp"
- android:layout_marginBottom="8dp"
+ android:layout_marginStart="@dimen/dp_2"
+ android:layout_marginTop="@dimen/dp_2"
+ android:layout_marginEnd="@dimen/dp_4"
+ android:layout_marginBottom="@dimen/dp_4"
android:layout_weight="1"
android:background="@drawable/custom_bg_ai"
android:visibility="gone">
@@ -396,11 +406,11 @@
@@ -421,21 +431,21 @@
android:id="@+id/cl_ai"
android:layout_width="0dp"
android:layout_height="match_parent"
- android:layout_marginStart="4dp"
- android:layout_marginTop="4dp"
- android:layout_marginEnd="8dp"
- android:layout_marginBottom="8dp"
+ android:layout_marginStart="@dimen/dp_2"
+ android:layout_marginTop="@dimen/dp_2"
+ android:layout_marginEnd="@dimen/dp_4"
+ android:layout_marginBottom="@dimen/dp_4"
android:layout_weight="1"
android:background="@drawable/custom_bg_ai">
@@ -452,40 +462,40 @@
app:layout_constraintTop_toTopOf="parent" />
-
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout-port/fragment_custom.xml b/app/src/main/res/layout-port/fragment_custom.xml
index 2daeb53..efab550 100644
--- a/app/src/main/res/layout-port/fragment_custom.xml
+++ b/app/src/main/res/layout-port/fragment_custom.xml
@@ -31,13 +31,14 @@
android:id="@+id/iv_pic"
android:layout_width="@dimen/dp_100"
android:layout_height="@dimen/dp_100"
+ android:layout_marginEnd="@dimen/dp_48"
android:adjustViewBounds="true"
- android:layout_marginEnd="@dimen/dp_16"
android:scaleType="centerCrop"
android:src="@drawable/he100"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/tv_temp"
- app:layout_constraintTop_toBottomOf="@+id/textView3" />
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintVertical_bias="0.495" />
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintVertical_bias="0.34" />
@@ -198,6 +201,7 @@
android:maxLines="1"
android:singleLine="true"
android:text="危险请按我"
+ android:visibility="gone"
android:layout_marginTop="@dimen/dp_2"
android:textColor="@color/lightGray"
app:layout_constraintStart_toStartOf="@+id/textView7"
@@ -238,12 +242,22 @@
android:background="@drawable/custom_bg_white"
tools:ignore="NestedWeights">
+
+
@@ -361,7 +376,7 @@
android:layout_marginEnd="@dimen/dp_2"
android:layout_marginBottom="@dimen/dp_4"
android:layout_weight="1"
- android:background="@drawable/custom_bg_guard">
+ android:background="@drawable/custom_bg_white">
-
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
-
+
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 9738844..0b42065 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -4,7 +4,7 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:background="@drawable/main_bg"
+ android:background="@drawable/wallpaper"
tools:context=".activity.main.MainActivity">
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_notification.xml b/app/src/main/res/layout/item_notification.xml
index afdaf03..62739ad 100644
--- a/app/src/main/res/layout/item_notification.xml
+++ b/app/src/main/res/layout/item_notification.xml
@@ -35,7 +35,7 @@
android:singleLine="true"
android:text="提醒时间"
android:layout_margin="@dimen/dp_4"
- android:textColor="@color/white"
+ android:textColor="@color/noti_font_color"
android:textSize="@dimen/sp_14"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index b26396a..cb29a30 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -15,19 +15,20 @@
#0480FF
#4D4B50
#FF0000
- #4f1fdb
+ #2a306b
#8e6afb
#00D56B
#3b6ab9
- #2a886c
+ #00d56b
#b25353
#3f8f4b
#e08c61
#536fae
- #2c77ba
+ #92e4a0
- #f4bea3
- #5d55b2
+ #eae8e8
+ #bbbaba
+ #2a306b
diff --git a/app/tpns-configs.json b/app/tpns-configs.json
index 04d6828..a5c3e9c 100644
--- a/app/tpns-configs.json
+++ b/app/tpns-configs.json
@@ -1,7 +1,7 @@
{
"tpns": {
- "access_id": "1580013523",
- "access_key": "ASJ3MCYWCTTF"
+ "access_id": "1500033697",
+ "access_key": "A0PFUHEPEKKM"
},
"com.uiuios.aios": {
"channel": {
diff --git a/settings.gradle b/settings.gradle
index 02d332a..7e87a94 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1,2 +1,2 @@
include ':app', ':niceimageview'
-rootProject.name='关怀系统OS'
\ No newline at end of file
+rootProject.name='UIUIOS关怀系统'
\ No newline at end of file