From 75214f440a25d17db6b07fa2b9fbcef33404f396 Mon Sep 17 00:00:00 2001
From: Fanhuitong <981964879@qq.com>
Date: Mon, 6 Feb 2023 19:00:02 +0800
Subject: [PATCH] =?UTF-8?q?version:2.3=20fix:=20update:=E5=9B=BA=E5=AE=9A?=
=?UTF-8?q?=E6=A8=AA=E5=B1=8F=EF=BC=8C=E5=A2=9E=E5=8A=A0=E5=AE=B6=E5=BA=AD?=
=?UTF-8?q?=E7=A9=BA=E9=97=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/build.gradle | 6 +-
app/src/main/AndroidManifest.xml | 30 +-
.../aidl/com/uiuios/sn/IGetInfoInterface.aidl | 31 ++
.../uiuios/aios/activity/ControlActivity.java | 50 +--
.../aios/activity/EmergencyActivity.java | 8 +-
.../aios/activity/QuickAppActivity.java | 7 +-
...Activity.java => FamilySpaceActivity.java} | 12 +-
...deContact.java => FamilySpaceContact.java} | 2 +-
...esenter.java => FamilySpacePresenter.java} | 10 +-
.../aios/activity/main/MainActivity.java | 3 +
.../activity/weather/WeatherPresenter.java | 11 +-
.../aios/adapter/AppSelectedAdapter.java | 8 +-
.../com/uiuios/aios/base/BaseApplication.java | 9 +-
.../java/com/uiuios/aios/bean/MapBean.java | 134 ++++++
.../com/uiuios/aios/config/CommonConfig.java | 9 +
.../uiuios/aios/fragment/AppListFragment.java | 5 +
.../aios/fragment/custom/CustomFragment.java | 75 ++--
.../aios/fragment/second/SecondFragment.java | 46 +-
.../com/uiuios/aios/manager/AmapManager.java | 410 ------------------
.../uiuios/aios/manager/RemoteManager.java | 165 +++++++
.../java/com/uiuios/aios/utils/ApkUtils.java | 18 +-
.../java/com/uiuios/aios/utils/JGYUtils.java | 43 ++
.../res/drawable-hdpi/icon_family_space.png | Bin 0 -> 4957 bytes
.../main/res/layout-land/activity_code.xml | 40 --
.../res/layout-land/activity_family_space.xml | 84 ++++
.../main/res/layout-port/activity_code.xml | 40 --
.../res/layout-port/activity_family_space.xml | 84 ++++
27 files changed, 698 insertions(+), 642 deletions(-)
create mode 100644 app/src/main/aidl/com/uiuios/sn/IGetInfoInterface.aidl
rename app/src/main/java/com/uiuios/aios/activity/code/{HealthCodeActivity.java => FamilySpaceActivity.java} (89%)
rename app/src/main/java/com/uiuios/aios/activity/code/{HealthCodeContact.java => FamilySpaceContact.java} (93%)
rename app/src/main/java/com/uiuios/aios/activity/code/{HealthCodePresenter.java => FamilySpacePresenter.java} (81%)
create mode 100644 app/src/main/java/com/uiuios/aios/bean/MapBean.java
create mode 100644 app/src/main/java/com/uiuios/aios/config/CommonConfig.java
delete mode 100644 app/src/main/java/com/uiuios/aios/manager/AmapManager.java
create mode 100644 app/src/main/java/com/uiuios/aios/manager/RemoteManager.java
create mode 100644 app/src/main/java/com/uiuios/aios/utils/JGYUtils.java
create mode 100644 app/src/main/res/drawable-hdpi/icon_family_space.png
delete mode 100644 app/src/main/res/layout-land/activity_code.xml
create mode 100644 app/src/main/res/layout-land/activity_family_space.xml
delete mode 100644 app/src/main/res/layout-port/activity_code.xml
create mode 100644 app/src/main/res/layout-port/activity_family_space.xml
diff --git a/app/build.gradle b/app/build.gradle
index 3898b7c..2b1a755 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -16,8 +16,8 @@ android {
applicationId "com.uiuios.aios"
minSdkVersion 24
targetSdkVersion 29
- versionCode 13
- versionName "2.2"
+ versionCode 14
+ versionName "2.3"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
@@ -195,7 +195,7 @@ dependencies {
implementation 'com.jakewharton:butterknife:10.2.3'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.3'
//百度地图
- implementation 'com.baidu.lbsyun:BaiduMapSDK_Location:9.1.8'
+// 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 e2b8090..98386b1 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -22,9 +22,9 @@
-
+
-
+
@@ -34,9 +34,9 @@
-
+
-
+
@@ -91,6 +91,7 @@
android:launchMode="singleTask"
android:resizeableActivity="true"
android:resumeWhilePausing="true"
+ android:screenOrientation="userLandscape"
android:stateNotNeeded="true"
android:taskAffinity="com.example.taskaffinity.newtask"
android:windowSoftInputMode="adjustPan">
@@ -106,7 +107,7 @@
-
-
-
+
+
+
+
+
+
+
+
+
+
+
getHideAPP();
+ //获取禁止打开的APP
+ List getForbidAPP();
+
+ //获取app设置
+ String getAppTimeControl();
+ //获取整机设置
+ String getSnTimeControl();
+ //获取系统设置
+ String getSetting();
+ //获取定位结果
+ String getMapResult();
+}
diff --git a/app/src/main/java/com/uiuios/aios/activity/ControlActivity.java b/app/src/main/java/com/uiuios/aios/activity/ControlActivity.java
index 53ad505..182ede7 100644
--- a/app/src/main/java/com/uiuios/aios/activity/ControlActivity.java
+++ b/app/src/main/java/com/uiuios/aios/activity/ControlActivity.java
@@ -30,11 +30,10 @@ import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import androidx.constraintlayout.widget.ConstraintLayout;
-import com.baidu.location.BDAbstractLocationListener;
-import com.baidu.location.BDLocation;
-import com.baidu.location.LocationClient;
+import com.tencent.mmkv.MMKV;
import com.uiuios.aios.R;
-import com.uiuios.aios.manager.AmapManager;
+import com.uiuios.aios.config.CommonConfig;
+import com.uiuios.aios.manager.RemoteManager;
import com.uiuios.aios.utils.BrightnessUtils;
import com.uiuios.aios.view.RulerSeekBar;
@@ -726,49 +725,18 @@ public class ControlActivity extends AppCompatActivity {
});
}
- private LocationClient locationClient;
-
private void getLocation() {
- BDLocation bdLocation = AmapManager.getInstance().getNowMapLocation();
- if (bdLocation != null) {
- if (bdLocation.getLocType() == BDLocation.TypeGpsLocation // GPS定位结果
- || bdLocation.getLocType() == BDLocation.TypeNetWorkLocation // 网络定位结果
- || bdLocation.getLocType() == BDLocation.TypeOffLineLocation) {// 离线定位结果
- tv_location.setText(bdLocation.getAddrStr());
- } else {
- tv_location.setText("未知");
- }
+ String addr = MMKV.defaultMMKV().decodeString(CommonConfig.MAP_ADDRESS_KEY);
+
+ if (TextUtils.isEmpty(addr)) {
+ tv_location.setText("未知");
} else {
- tv_location.setText("定位失败");
+ tv_location.setText(addr);
}
- startLocation();
cl_location.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
- startLocation();
- }
- });
- }
-
- private void startLocation() {
- if (locationClient == null) {
- locationClient = AmapManager.getInstance().getLocationClient();
- }
- locationClient.stop();
- locationClient.start();
- locationClient.registerLocationListener(new BDAbstractLocationListener() {
- @Override
- public void onReceiveLocation(BDLocation bdLocation) {
- switch (bdLocation.getLocType()) {
- case BDLocation.TypeGpsLocation:// GPS定位结果
- case BDLocation.TypeNetWorkLocation:// 网络定位结果
- case BDLocation.TypeOffLineLocation:// 离线定位结果
- tv_location.setText(bdLocation.getAddrStr());
- break;
- default:
- tv_location.setText("定位失败");
- break;
- }
+ RemoteManager.getInstance().getLocation();
}
});
}
diff --git a/app/src/main/java/com/uiuios/aios/activity/EmergencyActivity.java b/app/src/main/java/com/uiuios/aios/activity/EmergencyActivity.java
index f89baf5..cb3830d 100644
--- a/app/src/main/java/com/uiuios/aios/activity/EmergencyActivity.java
+++ b/app/src/main/java/com/uiuios/aios/activity/EmergencyActivity.java
@@ -18,8 +18,8 @@ import com.tencent.mmkv.MMKV;
import com.uiuios.aios.R;
import com.uiuios.aios.bean.BaseResponse;
import com.uiuios.aios.bean.Contact;
+import com.uiuios.aios.config.CommonConfig;
import com.uiuios.aios.disklrucache.CacheHelper;
-import com.uiuios.aios.manager.AmapManager;
import com.uiuios.aios.network.NetInterfaceManager;
import com.uiuios.aios.network.URLAddress;
import com.uiuios.aios.receiver.BootReceiver;
@@ -97,9 +97,9 @@ public class EmergencyActivity extends AppCompatActivity {
Log.e(TAG, "accept: " + (time - aLong - 1));
} else {
MMKV mmkv = MMKV.defaultMMKV();
- String longitude = mCacheHelper.getAsString(AmapManager.LONGITUDE_KEY);
- String latitude = mCacheHelper.getAsString(AmapManager.LATITUDE_KEY);
- String address = mCacheHelper.getAsString(AmapManager.ADDRESS_KEY);
+ String longitude = mCacheHelper.getAsString(CommonConfig.MAP_LONGITUDE_KEY);
+ String latitude = mCacheHelper.getAsString(CommonConfig.MAP_LATITUDE_KEY);
+ String address = mCacheHelper.getAsString(CommonConfig.MAP_ADDRESS_KEY);
NetInterfaceManager.getInstance()
.getSOSRecordObservable(longitude, latitude, address)
.subscribe(new Observer() {
diff --git a/app/src/main/java/com/uiuios/aios/activity/QuickAppActivity.java b/app/src/main/java/com/uiuios/aios/activity/QuickAppActivity.java
index bfb9107..49ec0bd 100644
--- a/app/src/main/java/com/uiuios/aios/activity/QuickAppActivity.java
+++ b/app/src/main/java/com/uiuios/aios/activity/QuickAppActivity.java
@@ -22,7 +22,12 @@ import butterknife.BindView;
import butterknife.ButterKnife;
public class QuickAppActivity extends BaseActivity {
- public static final String QUICK_APP_KEY = "QuickAppKey";
+ private static final String TAG = QuickAppActivity.class.getSimpleName();
+
+ public static final String QUICK_APP_KEY = "QuickAppPackageKey";
+ public static final String QUICK_APP_REFRESH_KEY = "QuickAppRefreshKey";
+ public static final String QUICK_APP_ENABLED_KEY = "QuickAppEnabledKey";
+
private AppSelectedAdapter mAppSelectedAdapter;
@BindView(R.id.rv_goods)
diff --git a/app/src/main/java/com/uiuios/aios/activity/code/HealthCodeActivity.java b/app/src/main/java/com/uiuios/aios/activity/code/FamilySpaceActivity.java
similarity index 89%
rename from app/src/main/java/com/uiuios/aios/activity/code/HealthCodeActivity.java
rename to app/src/main/java/com/uiuios/aios/activity/code/FamilySpaceActivity.java
index fa0546d..b8cf038 100644
--- a/app/src/main/java/com/uiuios/aios/activity/code/HealthCodeActivity.java
+++ b/app/src/main/java/com/uiuios/aios/activity/code/FamilySpaceActivity.java
@@ -23,7 +23,10 @@ import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
-public class HealthCodeActivity extends BaseActivity implements HealthCodeContact.CodeView {
+public class FamilySpaceActivity extends BaseActivity implements FamilySpaceContact.CodeView {
+
+ @BindView(R.id.iv_back)
+ ImageView iv_back;
@BindView(R.id.viewPager)
ViewPager mViewPager;
@BindView(R.id.magicIndicator)
@@ -31,21 +34,22 @@ public class HealthCodeActivity extends BaseActivity implements HealthCodeContac
@BindView(R.id.iv_nodata)
ImageView iv_nodata;
- private HealthCodePresenter mPresenter;
+ private FamilySpacePresenter mPresenter;
private HealthCodeAdapter mHealthCodeAdapter;
private ScaleCircleNavigator scaleCircleNavigator;
@Override
public int getLayoutId() {
- return R.layout.activity_code;
+ return R.layout.activity_family_space;
}
@Override
public void initView() {
ButterKnife.bind(this);
- mPresenter = new HealthCodePresenter(this);
+ mPresenter = new FamilySpacePresenter(this);
mPresenter.attachView(this);
mPresenter.setLifecycle(lifecycleSubject);
+ iv_back.setOnClickListener(view -> finish());
mHealthCodeAdapter = new HealthCodeAdapter();
mViewPager.setAdapter(mHealthCodeAdapter);
scaleCircleNavigator = new ScaleCircleNavigator(this);
diff --git a/app/src/main/java/com/uiuios/aios/activity/code/HealthCodeContact.java b/app/src/main/java/com/uiuios/aios/activity/code/FamilySpaceContact.java
similarity index 93%
rename from app/src/main/java/com/uiuios/aios/activity/code/HealthCodeContact.java
rename to app/src/main/java/com/uiuios/aios/activity/code/FamilySpaceContact.java
index 39ebaaf..dc38ebe 100644
--- a/app/src/main/java/com/uiuios/aios/activity/code/HealthCodeContact.java
+++ b/app/src/main/java/com/uiuios/aios/activity/code/FamilySpaceContact.java
@@ -6,7 +6,7 @@ import com.uiuios.aios.bean.HealthCode;
import java.util.List;
-public class HealthCodeContact {
+public class FamilySpaceContact {
public interface Presenter extends BasePresenter {
void getHealthCode();
}
diff --git a/app/src/main/java/com/uiuios/aios/activity/code/HealthCodePresenter.java b/app/src/main/java/com/uiuios/aios/activity/code/FamilySpacePresenter.java
similarity index 81%
rename from app/src/main/java/com/uiuios/aios/activity/code/HealthCodePresenter.java
rename to app/src/main/java/com/uiuios/aios/activity/code/FamilySpacePresenter.java
index 2e14a77..24275d7 100644
--- a/app/src/main/java/com/uiuios/aios/activity/code/HealthCodePresenter.java
+++ b/app/src/main/java/com/uiuios/aios/activity/code/FamilySpacePresenter.java
@@ -13,9 +13,9 @@ import java.util.List;
import io.reactivex.rxjava3.subjects.BehaviorSubject;
-public class HealthCodePresenter implements HealthCodeContact.Presenter {
- private static final String TAG = HealthCodePresenter.class.getSimpleName();
- private HealthCodeContact.CodeView mView;
+public class FamilySpacePresenter implements FamilySpaceContact.Presenter {
+ private static final String TAG = FamilySpacePresenter.class.getSimpleName();
+ private FamilySpaceContact.CodeView mView;
private Context mContext;
@@ -29,14 +29,14 @@ public class HealthCodePresenter implements HealthCodeContact.Presenter {
return lifecycle;
}
- HealthCodePresenter(Context context) {
+ FamilySpacePresenter(Context context) {
this.mContext = context;
Log.e(TAG, "MainPresenter: " + context.getClass());
}
@Override
- public void attachView(@NonNull HealthCodeContact.CodeView view) {
+ public void attachView(@NonNull FamilySpaceContact.CodeView view) {
this.mView = view;
}
diff --git a/app/src/main/java/com/uiuios/aios/activity/main/MainActivity.java b/app/src/main/java/com/uiuios/aios/activity/main/MainActivity.java
index dc75f1c..ba0efa3 100644
--- a/app/src/main/java/com/uiuios/aios/activity/main/MainActivity.java
+++ b/app/src/main/java/com/uiuios/aios/activity/main/MainActivity.java
@@ -63,11 +63,14 @@ public class MainActivity extends BaseActivity implements MainContact.MainView {
private FragmentManager mFragmentManager;
private FragmentTransaction mFragmentTransaction;
+
private ScaleCircleNavigator scaleCircleNavigator;
private BaseFragmentPagerAdapter mBaseFragmentPagerAdapter;
+
private List mFragments;
private CustomFragment mCustomFragment;
private SecondFragment mSecondFragment;
+
private boolean is_twoscreen = false;
private int appListIndex = 1;
private int defaultCurrent = 0;
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 74ff2e0..a921513 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,14 +5,13 @@ import android.util.Log;
import androidx.annotation.NonNull;
-import com.baidu.location.BDLocation;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.qweather.sdk.bean.weather.WeatherDailyBean;
import com.qweather.sdk.view.QWeather;
import com.tencent.mmkv.MMKV;
import com.trello.rxlifecycle4.android.ActivityEvent;
-import com.uiuios.aios.manager.AmapManager;
+import com.uiuios.aios.manager.RemoteManager;
import java.lang.reflect.Type;
@@ -58,11 +57,7 @@ public class WeatherPresenter implements WeatherContact.Presenter {
@Override
public void getLocation() {
- BDLocation bdLocation = AmapManager.getInstance().getNowMapLocation();
- String location = "未知";
- if (bdLocation != null) {
- location = bdLocation.getCity() + "\t" + bdLocation.getDistrict();
- }
+ String location = RemoteManager.getInstance().getCityDistrict();
mView.setLocation(location);
}
@@ -78,7 +73,7 @@ public class WeatherPresenter implements WeatherContact.Presenter {
@Override
public void getWeather() {
- QWeather.getWeather7D(mContext, AmapManager.getInstance().getLocation(), new QWeather.OnResultWeatherDailyListener() {
+ QWeather.getWeather7D(mContext, RemoteManager.getInstance().getLocationTude(), new QWeather.OnResultWeatherDailyListener() {
@Override
public void onError(Throwable throwable) {
Log.e("getWeather", "onError: " + throwable.getMessage());
diff --git a/app/src/main/java/com/uiuios/aios/adapter/AppSelectedAdapter.java b/app/src/main/java/com/uiuios/aios/adapter/AppSelectedAdapter.java
index 192101a..11f16e1 100644
--- a/app/src/main/java/com/uiuios/aios/adapter/AppSelectedAdapter.java
+++ b/app/src/main/java/com/uiuios/aios/adapter/AppSelectedAdapter.java
@@ -1,6 +1,8 @@
package com.uiuios.aios.adapter;
import android.content.Context;
+import android.provider.Settings;
+import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -18,6 +20,7 @@ import com.uiuios.aios.bean.AppSelectBean;
import java.util.List;
public class AppSelectedAdapter extends RecyclerView.Adapter {
+ private static final String TAG = AppSelectedAdapter.class.getSimpleName();
private Context mContext;
private List mAppSelectBeans;
@@ -53,11 +56,12 @@ public class AppSelectedAdapter extends RecyclerView.Adapter healthCode) {
- startActivity(new Intent(mContext, HealthCodeActivity.class));
+ startActivity(new Intent(mContext, FamilySpaceActivity.class));
}
@Override
diff --git a/app/src/main/java/com/uiuios/aios/fragment/second/SecondFragment.java b/app/src/main/java/com/uiuios/aios/fragment/second/SecondFragment.java
index 36abaf7..7e123f2 100644
--- a/app/src/main/java/com/uiuios/aios/fragment/second/SecondFragment.java
+++ b/app/src/main/java/com/uiuios/aios/fragment/second/SecondFragment.java
@@ -31,6 +31,7 @@ import com.uiuios.aios.bean.ArticleInfo;
import com.uiuios.aios.bean.DemandBean;
import com.uiuios.aios.bean.GoodsInfo;
import com.uiuios.aios.network.NetInterfaceManager;
+import com.uiuios.aios.utils.JGYUtils;
import java.text.SimpleDateFormat;
import java.util.Date;
@@ -119,7 +120,7 @@ public class SecondFragment extends BaseFragment implements SecondContact.View,
@BindView(R.id.tv_info_more)
TextView tv_info_more;
- private android.view.View rootView;
+ private View rootView;
private Context mContext;
private ContentResolver mCRv;
private SecondPresenter mPresenter;
@@ -144,7 +145,9 @@ public class SecondFragment extends BaseFragment implements SecondContact.View,
@Override
public void onConnected(NetworkUtils.NetworkType networkType) {
- initData();
+ if (JGYUtils.getInstance().isScreenOn()) {
+ initData();
+ }
}
public SecondFragment() {
@@ -181,12 +184,12 @@ public class SecondFragment extends BaseFragment implements SecondContact.View,
@Override
public void fetchData() {
-
+ initData();
}
@Override
- public android.view.View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState) {
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
// Inflate the layout for this fragment
rootView = inflater.inflate(R.layout.fragment_second, container, false);
mContext = rootView.getContext();
@@ -196,7 +199,6 @@ public class SecondFragment extends BaseFragment implements SecondContact.View,
mPresenter.setLifecycle(lifecycleSubject);
ButterKnife.bind(this, rootView);
initView();
- initData();
return rootView;
}
@@ -212,15 +214,15 @@ public class SecondFragment extends BaseFragment implements SecondContact.View,
rv_activity.setLayoutManager(new LinearLayoutManager(mContext));
rv_activity.setAdapter(mActivityAdapter);
- cl_activity.setOnClickListener(new android.view.View.OnClickListener() {
+ cl_activity.setOnClickListener(new View.OnClickListener() {
@Override
- public void onClick(android.view.View view) {
+ public void onClick(View view) {
openApp(0);
}
});
- cl_demand.setOnClickListener(new android.view.View.OnClickListener() {
+ cl_demand.setOnClickListener(new View.OnClickListener() {
@Override
- public void onClick(android.view.View view) {
+ public void onClick(View view) {
openApp(1);
}
});
@@ -255,16 +257,16 @@ public class SecondFragment extends BaseFragment implements SecondContact.View,
NetInterfaceManager.getInstance().getDemandList(true, lifecycleSubject, new NetInterfaceManager.DemandListCallback() {
@Override
public void setDemandList(List demandBeans) {
- cl4.setVisibility(android.view.View.VISIBLE);
- iv4.setVisibility(android.view.View.GONE);
+ cl4.setVisibility(View.VISIBLE);
+ iv4.setVisibility(View.GONE);
DemandBean demandBean = demandBeans.get(0);
setDemand(demandBean);
}
@Override
public void noData() {
- cl4.setVisibility(android.view.View.GONE);
- iv4.setVisibility(android.view.View.VISIBLE);
+ cl4.setVisibility(View.GONE);
+ iv4.setVisibility(View.VISIBLE);
}
@Override
@@ -325,10 +327,10 @@ public class SecondFragment extends BaseFragment implements SecondContact.View,
@Override
public void setGoods(List goodsInfos) {
if (goodsInfos != null && goodsInfos.size() != 0) {
- iv1.setVisibility(android.view.View.GONE);
+ iv1.setVisibility(View.GONE);
mGoodsAdapter.setGoodsInfoList(goodsInfos);
} else {
- iv1.setVisibility(android.view.View.VISIBLE);
+ iv1.setVisibility(View.VISIBLE);
}
}
@@ -336,23 +338,23 @@ public class SecondFragment extends BaseFragment implements SecondContact.View,
public void setArticle(List articleInfoList) {
if (articleInfoList != null && articleInfoList.size() != 0) {
// cl2.setVisibility(View.VISIBLE);
- iv2.setVisibility(android.view.View.GONE);
+ iv2.setVisibility(View.GONE);
mArticleAdapter.setArticleBeanList(articleInfoList);
} else {
// cl2.setVisibility(View.GONE);
- iv2.setVisibility(android.view.View.VISIBLE);
+ iv2.setVisibility(View.VISIBLE);
}
}
@Override
public void setActivityList(List activityList) {
if (activityList != null && activityList.size() != 0) {
-// cl3.setVisibility(android.view.View.VISIBLE);
- iv3.setVisibility(android.view.View.GONE);
+// cl3.setVisibility(View.VISIBLE);
+ iv3.setVisibility(View.GONE);
mActivityAdapter.setActivityBeans(activityList);
} else {
-// cl3.setVisibility(android.view.View.GONE);
- iv3.setVisibility(android.view.View.VISIBLE);
+// cl3.setVisibility(View.GONE);
+ iv3.setVisibility(View.VISIBLE);
}
}
}
diff --git a/app/src/main/java/com/uiuios/aios/manager/AmapManager.java b/app/src/main/java/com/uiuios/aios/manager/AmapManager.java
deleted file mode 100644
index d618875..0000000
--- a/app/src/main/java/com/uiuios/aios/manager/AmapManager.java
+++ /dev/null
@@ -1,410 +0,0 @@
-package com.uiuios.aios.manager;
-
-import android.annotation.SuppressLint;
-import android.content.Context;
-import android.provider.Settings;
-import android.text.TextUtils;
-import android.util.Log;
-
-import com.baidu.location.BDAbstractLocationListener;
-import com.baidu.location.BDLocation;
-import com.baidu.location.LocationClient;
-import com.baidu.location.LocationClientOption;
-import com.blankj.utilcode.util.SPUtils;
-import com.google.gson.Gson;
-import com.google.gson.reflect.TypeToken;
-import com.tencent.mmkv.MMKV;
-import com.uiuios.aios.disklrucache.CacheHelper;
-import com.uiuios.aios.utils.GsonUtils;
-
-import java.lang.reflect.Type;
-
-public class AmapManager {
- 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 CacheHelper mCacheHelper;
-
- 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;
- this.mCacheHelper = new CacheHelper(context);
- Settings.Secure.putString(mContext.getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED, "+gps");
- initAmap();
- }
-
- public static void init(Context context) {
- if (context == null) {
- throw new RuntimeException("Context is NULL");
- }
- if (sInstance == null) {
- sInstance = new AmapManager(context);
- }
- }
-
- public static AmapManager getInstance() {
- if (sInstance == null) {
- throw new IllegalStateException("You must be init AmapManager first");
- }
- return sInstance;
- }
-
- public void initAmap() {
- if (mLocationClient == null) {
- mLocationClient = new LocationClient(mContext);
- }
- Settings.Secure.putString(mContext.getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED, "+gps");
- mLocationClient.setLocOption(getDefaultLocationClientOption());
- mLocationClient.registerLocationListener(mListener);
- mLocationClient.stop();
- mLocationClient.start();
- }
-
-
- public LocationClient getLocationClient() {
- if (mLocationClient == null) {
- initAmap();
- }
- return mLocationClient;
- }
-
- public BDLocation getNowMapLocation() {
- if (mLocation == null) {
- String aMapLocationjson = SPUtils.getInstance().getString(AMAPLOCATION_JSON_KEY,"");
- if (TextUtils.isEmpty(aMapLocationjson)) {
- return null;
- }
- Type type = new TypeToken() {
- }.getType();
- try {
- BDLocation bdLocation = new Gson().fromJson(aMapLocationjson, type);
- return bdLocation;
- } catch (Exception e) {
- Log.e(TAG, "getNowMapLocation: " + e.getMessage());
- return null;
- }
- }
- return this.mLocation;
- }
-
- public String getLocation() {
- BDLocation bdLocation = getNowMapLocation();
- if (bdLocation == null) {
- return "0,0";
- } else {
- 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:// 离线定位结果
- SPUtils.getInstance().put(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());
- mCacheHelper.put(ADDRESS_KEY, location.getAddrStr() + location.getLocationDescribe());
- mCacheHelper.put(LONGITUDE_KEY, location.getLongitude());
- mCacheHelper.put(LATITUDE_KEY, location.getLatitude());
- mCacheHelper.put(ERROR_KEY, "-");
- break;
- case BDLocation.TypeServerError:
- Log.e(TAG, "onReceiveLocation: " + "服务端网络定位失败");
- mCacheHelper.put(ERROR_KEY, "服务端网络定位失败,可以反馈IMEI号和大体定位时间到loc-bugs@baidu.com,会有人追查原因");
- break;
- case BDLocation.TypeNetWorkException:
- Log.e(TAG, "onReceiveLocation: " + "网络不同导致定位失败,请检查网络是否通畅");
- mCacheHelper.put(ERROR_KEY, "网络不同导致定位失败,请检查网络是否通畅");
- break;
- case BDLocation.TypeCriteriaException:
- Log.e(TAG, "onReceiveLocation: " + "无法获取有效定位依据导致定位失败");
- mCacheHelper.put(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: " + mCacheHelper.getAsString(ADDRESS_KEY));
- Log.e(TAG, "AmapError: " + mCacheHelper.getAsString(ERROR_KEY));
- Settings.Secure.putString(mContext.getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED, "-network");
- Settings.Secure.putString(mContext.getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED, "-gps");
- Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.ASSISTED_GPS_ENABLED, 0);
- }
-
- @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: " + "定位失败");
- mCacheHelper.put(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/java/com/uiuios/aios/manager/RemoteManager.java b/app/src/main/java/com/uiuios/aios/manager/RemoteManager.java
new file mode 100644
index 0000000..fc7697f
--- /dev/null
+++ b/app/src/main/java/com/uiuios/aios/manager/RemoteManager.java
@@ -0,0 +1,165 @@
+package com.uiuios.aios.manager;
+
+import android.annotation.SuppressLint;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.ServiceConnection;
+import android.os.IBinder;
+import android.text.TextUtils;
+import android.util.Log;
+
+import com.google.gson.Gson;
+import com.google.gson.reflect.TypeToken;
+import com.tencent.mmkv.MMKV;
+import com.uiuios.aios.bean.MapBean;
+import com.uiuios.aios.config.CommonConfig;
+import com.uiuios.aios.disklrucache.CacheHelper;
+import com.uiuios.sn.IGetInfoInterface;
+
+import java.lang.reflect.Type;
+
+public class RemoteManager {
+ private static final String TAG = RemoteManager.class.getSimpleName();
+
+ @SuppressLint("StaticFieldLeak")
+ private static RemoteManager sInstance;
+ private Context mContext;
+ private MMKV mMMKV = MMKV.defaultMMKV();
+ private CacheHelper mCacheHelper;
+
+ private IGetInfoInterface getInfoInterface;
+ private ServiceConnection mIGetInfoConnection;
+
+
+ private RemoteManager(Context context) {
+ if (context == null) {
+ throw new RuntimeException("Context is NULL");
+ }
+ this.mContext = context;
+ this.mCacheHelper = new CacheHelper(context);
+ mIGetInfoConnection = new ServiceConnection() {
+ @Override
+ public void onServiceConnected(ComponentName name, IBinder service) {
+ Log.e(TAG, "onServiceConnected: mIGetInfoConnection");
+ getInfoInterface = IGetInfoInterface.Stub.asInterface(service);
+ getLocation();
+ }
+
+ @Override
+ public void onServiceDisconnected(ComponentName name) {
+ Log.e(TAG, "onServiceDisconnected: mIGetInfoConnection");
+ getInfoInterface = null;
+ bindInfoService();
+ }
+ };
+ bindInfoService();
+ }
+
+ public static void init(Context context) {
+ if (sInstance == null) {
+ Log.e(TAG, "init: ");
+ sInstance = new RemoteManager(context);
+ }
+ }
+
+ public static RemoteManager getInstance() {
+ if (sInstance == null) {
+ throw new IllegalStateException("You must be init RemoteManager first");
+ }
+ return sInstance;
+ }
+
+ private void bindInfoService() {
+ if (getInfoInterface == null) {
+ //这是连接aidl服务的代码
+ Intent intent = new Intent();
+ intent.setAction("com.uiuios.sn.IGetInfoInterface");
+ intent.setPackage("com.uiuios.sn");
+ intent.setComponent(new ComponentName("com.uiuios.sn", "com.uiuios.sn.service.RemoteService"));
+ mContext.bindService(intent, mIGetInfoConnection, Context.BIND_AUTO_CREATE);
+ }
+ }
+
+ public void getLocation() {
+ if (getInfoInterface != null) {
+ try {
+ String jsonString = getInfoInterface.getMapResult();
+ mMMKV.encode(CommonConfig.MAP_LOCATION_JSON_KEY, jsonString);
+ } catch (Exception e) {
+ Log.e(TAG, "getMapResult: " + e.getMessage());
+ }
+ } else {
+ bindInfoService();
+ }
+ }
+
+ public MapBean getMapBean() {
+ String jsonString = mMMKV.decodeString(CommonConfig.MAP_LOCATION_JSON_KEY);
+ if (TextUtils.isEmpty(jsonString)) {
+ return null;
+ } else {
+ Gson gson = new Gson();
+ Type type = new TypeToken() {
+ }.getType();
+ MapBean mapBean = gson.fromJson(jsonString, type);
+ mMMKV.encode(CommonConfig.MAP_ADDRESS_KEY, mapBean.getAddress() + mapBean.getLocationDescribe());
+ mMMKV.encode(CommonConfig.MAP_LONGITUDE_KEY, mapBean.getLongitude());
+ mMMKV.encode(CommonConfig.MAP_LATITUDE_KEY, mapBean.getLatitude());
+ return mapBean;
+ }
+ }
+
+ public String getCity() {
+ MapBean mapBean = getMapBean();
+ if (mapBean == null) {
+ getLocation();
+ return "北京";
+ } else {
+ return mapBean.getCity();
+ }
+ }
+
+
+ public String getCityDistrict() {
+ MapBean mapBean = getMapBean();
+ if (mapBean == null) {
+ getLocation();
+ return "北京";
+ } else {
+ return mapBean.getCity() + "\t" + mapBean.getDistrict();
+ }
+ }
+
+ public double getLongitude() {
+ MapBean mapBean = getMapBean();
+ if (mapBean == null) {
+ getLocation();
+ return 0.0;
+ } else {
+ return mapBean.getLongitude();
+ }
+ }
+
+ public double getLatitude() {
+ MapBean mapBean = getMapBean();
+ if (mapBean == null) {
+ getLocation();
+ return 0.0;
+ } else {
+ return mapBean.getLatitude();
+ }
+ }
+
+ public String getLocationTude() {
+ MapBean mapBean = getMapBean();
+ if (mapBean == null) {
+ getLocation();
+ return "0.0";
+ } else {
+ return mapBean.getLongitude() + "," + mapBean.getLatitude();
+ }
+ }
+
+
+}
diff --git a/app/src/main/java/com/uiuios/aios/utils/ApkUtils.java b/app/src/main/java/com/uiuios/aios/utils/ApkUtils.java
index 50a61e6..aff3da0 100644
--- a/app/src/main/java/com/uiuios/aios/utils/ApkUtils.java
+++ b/app/src/main/java/com/uiuios/aios/utils/ApkUtils.java
@@ -1,11 +1,9 @@
package com.uiuios.aios.utils;
import android.app.PendingIntent;
-import android.app.role.RoleManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
-import android.content.IntentFilter;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageInstaller;
@@ -13,9 +11,6 @@ import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.os.Binder;
import android.os.Build;
-import android.os.Process;
-import android.os.SystemProperties;
-import android.os.UserHandle;
import android.provider.Settings;
import android.text.TextUtils;
import android.util.Log;
@@ -23,6 +18,7 @@ import android.util.Log;
import androidx.annotation.RequiresApi;
import com.uiuios.aios.BuildConfig;
+import com.uiuios.aios.R;
import com.uiuios.aios.bean.DesktopIcon;
import com.uiuios.aios.receiver.InstallResultReceiver;
@@ -33,13 +29,10 @@ import java.text.Collator;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
-import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Locale;
import java.util.Set;
-import java.util.concurrent.Executor;
-import java.util.function.Consumer;
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
import io.reactivex.rxjava3.core.Observable;
@@ -232,6 +225,13 @@ public class ApkUtils {
desktopIcons.add(DesktopIcon.creatDesktopIcon(context, applicationInfo));
}
}
+
+ DesktopIcon familyIcon = new DesktopIcon();
+ familyIcon.setIcon(context.getDrawable(R.drawable.icon_family_space));
+ familyIcon.setLable("家庭空间");
+ familyIcon.setPackageName("aios.family");
+ desktopIcons.add(0, familyIcon);
+
return desktopIcons;
}
@@ -334,6 +334,8 @@ public class ApkUtils {
ComponentName cn = new ComponentName(packageName, className);
Intent intent = new Intent();
intent.setComponent(cn);
+ intent.addCategory(Intent.CATEGORY_LAUNCHER);
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
if (context != null) {
context.startActivity(intent);
return true;
diff --git a/app/src/main/java/com/uiuios/aios/utils/JGYUtils.java b/app/src/main/java/com/uiuios/aios/utils/JGYUtils.java
new file mode 100644
index 0000000..4f342b7
--- /dev/null
+++ b/app/src/main/java/com/uiuios/aios/utils/JGYUtils.java
@@ -0,0 +1,43 @@
+package com.uiuios.aios.utils;
+
+import android.annotation.SuppressLint;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.os.PowerManager;
+
+
+public class JGYUtils {
+ private static final String TAG = JGYUtils.class.getSimpleName();
+
+ @SuppressLint("StaticFieldLeak")
+ private static JGYUtils sInstance;
+ private Context mContext;
+ private ContentResolver resolver;
+
+ private JGYUtils(Context context) {
+ if (context == null) {
+ throw new RuntimeException("Context is NULL");
+ }
+ this.mContext = context;
+ this.resolver = mContext.getContentResolver();
+ }
+
+ public static void init(Context context) {
+ if (sInstance == null) {
+ sInstance = new JGYUtils(context);
+ }
+ }
+
+ public static JGYUtils getInstance() {
+ if (sInstance == null) {
+ throw new IllegalStateException("You must be init JGYUtils first");
+ }
+ return sInstance;
+ }
+
+ public boolean isScreenOn() {
+ PowerManager powerManager = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
+ //true为打开,false为关闭
+ return powerManager.isInteractive();
+ }
+}
diff --git a/app/src/main/res/drawable-hdpi/icon_family_space.png b/app/src/main/res/drawable-hdpi/icon_family_space.png
new file mode 100644
index 0000000000000000000000000000000000000000..4f4763947f85a1708db5e07418b3f17b7a07acd1
GIT binary patch
literal 4957
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
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout-land/activity_family_space.xml b/app/src/main/res/layout-land/activity_family_space.xml
new file mode 100644
index 0000000..90bf84c
--- /dev/null
+++ b/app/src/main/res/layout-land/activity_family_space.xml
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout-port/activity_code.xml b/app/src/main/res/layout-port/activity_code.xml
deleted file mode 100644
index f5d8be8..0000000
--- a/app/src/main/res/layout-port/activity_code.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout-port/activity_family_space.xml b/app/src/main/res/layout-port/activity_family_space.xml
new file mode 100644
index 0000000..90bf84c
--- /dev/null
+++ b/app/src/main/res/layout-port/activity_family_space.xml
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file