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