app/build.gradle
@@ -29,8 +29,8 @@ applicationId "com.driver.goposttrip" minSdkVersion 23 targetSdkVersion 35 versionCode 31 versionName "1.5.2" versionCode 33 versionName "1.5.4" multiDexEnabled true testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" app/src/main/AndroidManifest.xml
@@ -5,6 +5,8 @@ <queries> <package android:name="com.tencent.mm" /> <package android:name="com.facebook.katana" /> <package android:name="com.qihoo360.mobilesafe" /> <package android:name="com.miui.securitycenter" /> </queries> <uses-permission android:name="com.driver.igotrip.permission.JPUSH_MESSAGE" /> app/src/main/java/com/driver/igotrip/base/gaode/AMapKit.kt
@@ -1,15 +1,17 @@ package com.driver.igotrip.base.gaode //import com.google.android.libraries.places.api.Places //import com.google.android.libraries.places.api.model.* //import com.google.android.libraries.places.api.net.FetchPlaceRequest //import com.google.android.libraries.places.api.net.FindAutocompletePredictionsRequest //import com.google.android.libraries.places.api.net.FindCurrentPlaceRequest import android.Manifest import android.annotation.SuppressLint import android.content.Context import android.content.Intent import android.content.pm.PackageInfo import android.content.pm.PackageManager import android.graphics.Bitmap import android.graphics.Color import android.location.LocationManager import android.net.Uri import android.os.Handler import android.os.Looper import android.text.TextUtils @@ -19,24 +21,32 @@ import cn.sinata.xldutils.utils.SPUtils import com.driver.igotrip.R import com.driver.igotrip.base.Const import com.driver.igotrip.base.MyApplication import com.driver.igotrip.base.MyBaseActivity.TAG import com.driver.igotrip.bean.GoogleBackBean import com.driver.igotrip.bean.GoogleNearBean2 import com.driver.igotrip.bean.GoogleRouteBean import com.google.android.gms.common.api.ApiException import com.google.android.gms.maps.* import com.google.android.gms.maps.model.* //import com.google.android.libraries.places.api.Places //import com.google.android.libraries.places.api.model.* //import com.google.android.libraries.places.api.net.FetchPlaceRequest //import com.google.android.libraries.places.api.net.FindAutocompletePredictionsRequest //import com.google.android.libraries.places.api.net.FindCurrentPlaceRequest import com.google.android.gms.maps.CameraUpdateFactory import com.google.android.gms.maps.GoogleMap import com.google.android.gms.maps.GoogleMapOptions import com.google.android.gms.maps.SupportMapFragment import com.google.android.gms.maps.model.BitmapDescriptor import com.google.android.gms.maps.model.BitmapDescriptorFactory import com.google.android.gms.maps.model.CameraPosition import com.google.android.gms.maps.model.Circle import com.google.android.gms.maps.model.CircleOptions import com.google.android.gms.maps.model.LatLng import com.google.android.gms.maps.model.LatLngBounds import com.google.android.gms.maps.model.Marker import com.google.android.gms.maps.model.MarkerOptions import com.google.android.gms.maps.model.Polygon import com.google.android.gms.maps.model.PolygonOptions import com.google.android.gms.maps.model.Polyline import com.google.android.gms.maps.model.PolylineOptions import com.google.gson.Gson import com.lljjcoder.style.citylist.Toast.ToastUtils import okhttp3.* import okhttp3.MediaType.Companion.toMediaTypeOrNull import java.util.* import okhttp3.OkHttpClient import okhttp3.Request import okhttp3.RequestBody object AMapKit { @@ -570,36 +580,9 @@ endLat: Double, endLon: Double ) { // if (isAvilible(context, "com.google.android.apps.maps")) { // val gmmIntentUri: Uri = Uri.parse("google.navigation:q=$endLat,$endLon") // val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri) // mapIntent.setPackage("com.google.android.apps.maps") // context.startActivity(mapIntent) // } else { // ToastUtils.showShortToast(context, context.getString(R.string.您尚未安装谷歌地图)) // val uri: Uri = Uri.parse("market://details?id=com.google.android.apps.maps") // var intent = Intent(Intent.ACTION_VIEW, uri) // context.startActivity(intent) // } val intent = Intent(context, NaviGoogleActivity::class.java) intent.putExtra("lat", endLat) intent.putExtra("lon", endLon) context.startActivity(intent) } /**检测应用是否安装 */ private fun isAvilible(context: Context, packageName: String): Boolean { val packageManager = context.packageManager //获取packagemanager val pinfo: List<PackageInfo>? = packageManager.getInstalledPackages(0) //获取所有已安装程序的包信息 val pName: MutableList<String> = ArrayList() //用于存储所有已安装程序的包名 //从pinfo中将包名字逐一取出,压入pName list中 if (pinfo != null) { for (i in pinfo.indices) { val pn: String = pinfo[i].packageName pName.add(pn) } } return pName.contains(packageName) //判断pName中是否有目标程序的包名,有TRUE,没有FALSE } } app/src/main/java/com/driver/igotrip/bean/websocket/HeartBean.java
@@ -1,12 +1,11 @@ package com.driver.igotrip.bean.websocket; import com.driver.igotrip.BuildConfig; import com.driver.igotrip.base.Const; import com.driver.igotrip.base.MyApplication; import com.driver.igotrip.netUtls.NetKitKt; import com.driver.igotrip.utils.Cache.CacheKey; import cn.sinata.xldutils.utils.SPUtils; import cn.sinata.xldutils.utils.Utils; public class HeartBean { private int code = 200; @@ -60,7 +59,7 @@ userId = NetKitKt.getUserId(); token = CacheKey.INSTANCE.getToken(); device = "phoneDevice"; version = Utils.getAppVersion(MyApplication.Companion.getAppContext()); version = BuildConfig.VERSION_NAME; } } app/src/main/java/com/driver/igotrip/ui/main/MainActivity.kt
@@ -20,9 +20,11 @@ import cn.sinata.xldutils.utils.Utils import cn.sinata.xldutils.utils.clickDelay import cn.sinata.xldutils.utils.doubleOne import cn.sinata.xldutils.utils.getVersionName import cn.sinata.xldutils.utils.gone import cn.sinata.xldutils.utils.setDrawableLeft import cn.sinata.xldutils.utils.textColor import com.driver.igotrip.BuildConfig import com.driver.igotrip.R import com.driver.igotrip.base.BaseEvent import com.driver.igotrip.base.Const @@ -341,7 +343,7 @@ // map["id"] = CacheKey.getUserId() callNet(Api.queryNewData, map) { var data = gson.fromJson<VersionBean>(it, VersionBean::class.java) if (data.data.version != "" && data.data.version != Utils.getAppVersion(this)) { if (data.data.version != "" && data.data.version != getVersionName()) { if (data.data.mandatory == 2) { DialogUtil.getDelAndSureDialog( this, app/src/main/java/com/driver/igotrip/ui/mine/MineActivity.kt
@@ -63,25 +63,25 @@ //Facebook秘钥散列获取 private fun facebookHashKey() { try { val info: PackageInfo = packageManager.getPackageInfo("com.driver.igotrip", PackageManager.GET_SIGNATURES) for (signature in info.signatures ?: arrayOf()) { val md: MessageDigest = MessageDigest.getInstance("SHA") md.update(signature.toByteArray()) Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT)) } } catch (e: PackageManager.NameNotFoundException) { } catch (e: NoSuchAlgorithmException) { } } // private fun facebookHashKey() { // try { // val info: PackageInfo = // packageManager.getPackageInfo("com.driver.igotrip", PackageManager.GET_SIGNATURES) // for (signature in info.signatures ?: arrayOf()) { // val md: MessageDigest = MessageDigest.getInstance("SHA") // md.update(signature.toByteArray()) // Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT)) // } // } catch (e: PackageManager.NameNotFoundException) { // } catch (e: NoSuchAlgorithmException) { // } // } override fun initView() { showHeader(false) showTitle(false) callMine() facebookHashKey() // facebookHashKey() } private fun callMine() { app/src/main/java/com/driver/igotrip/ui/mine/setting/SettingActivity.kt
@@ -4,6 +4,7 @@ import android.widget.TextView import cn.sinata.xldutils.utils.Utils import cn.sinata.xldutils.utils.clickDelay import cn.sinata.xldutils.utils.getVersionName import com.driver.emanagercar.ui.base.BaseWebActivity import com.driver.igotrip.R import com.driver.igotrip.base.BaseEvent @@ -44,7 +45,7 @@ override fun initView() { setTitleText(getString(R.string.设置)) tv_version_code.text = Utils.getAppVersion(this) tv_version_code.text = getVersionName() tv_cache.text = GlideCacheUtil.getInstance().getCacheSize(MyApplication.getInstance()) } @@ -135,7 +136,7 @@ // map["id"] = CacheKey.getUserId() callNet(Api.queryNewData, map) { var data = gson.fromJson<VersionBean>(it, VersionBean::class.java) if (data.data.version != "" && data.data.version != Utils.getAppVersion(this)) { if (data.data.version != "" && data.data.version != getVersionName()) { if (data.data.mandatory == 2) { DialogUtil.getDelAndSureDialog(this, getString(R.string.新版本更新),data.data.content, {}, { browse(data.data.url) app/src/main/java/com/driver/igotrip/utils/PackageUtil.java
@@ -1,14 +1,9 @@ package com.driver.igotrip.utils; import android.app.Activity; import android.app.ActivityManager; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.ResolveInfo; import android.net.Uri; import android.os.Build; import android.os.Environment; @@ -16,11 +11,12 @@ import android.text.TextUtils; import android.view.View; import com.driver.igotrip.BuildConfig; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.lang.reflect.Method; import java.util.List; import java.util.Properties; public final class PackageUtil { @@ -50,59 +46,22 @@ } public static int getVersionCode(Context mContext) { int versionCode = -1; try { versionCode = mContext.getPackageManager().getPackageInfo(getPackageName(mContext), 0).versionCode; return versionCode; } catch (NameNotFoundException e) { e.printStackTrace(); return -1; } return BuildConfig.VERSION_CODE; } public static boolean hasIntent(Context context, Intent intent) { PackageManager manager = context.getPackageManager(); List<ResolveInfo> infos = manager.queryIntentActivities(intent, 0); return null != infos && !infos.isEmpty(); return context.getPackageManager().resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY)!=null; } public static String getVersionName(Context mContext) { String versionName = ""; try { versionName = mContext.getPackageManager().getPackageInfo(getPackageName(mContext), 0).versionName; return versionName; } catch (NameNotFoundException e) { e.printStackTrace(); return null; } return BuildConfig.VERSION_NAME; } public static String getPackageName(Context mContext) { if (mContext != null) { return mContext.getPackageName(); } return "com.bdfint.logistics_driver"; } /** * get currnet activity's name * * @param context * @return */ public static String getActivityName(Context context) { if (context == null) { return ""; } ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); if (checkPermissions(context, "android.permission.GET_TASKS")) { ComponentName cn = am.getRunningTasks(1).get(0).topActivity; String activityName = cn.getShortClassName(); activityName = activityName.substring(activityName.lastIndexOf(".") + 1, activityName.length()); return activityName; } else { return ""; } return BuildConfig.APPLICATION_ID; } /** @@ -118,31 +77,6 @@ } private static String channelId; /** * @param * @return String * @description 获取APPLICATION metadata的数据 * @date 2014-12-2 * @Exception */ public static String getApplicationMetaData(Context context, String key) { String data = null; String defaultkey = "zlgx"; if (context == null) { return defaultkey; } try { ApplicationInfo appInfo = context.getPackageManager().getApplicationInfo(getPackageName(context), PackageManager.GET_META_DATA); if (null == appInfo || null == appInfo.metaData || null == appInfo.metaData.get(key)) return defaultkey; data = appInfo.metaData.get(key).toString(); } catch (NameNotFoundException e) { e.printStackTrace(); data = defaultkey; } return data; } /** * 判断是否安装目标应用 app/src/main/java/com/driver/igotrip/utils/UtilKt.kt
@@ -25,6 +25,7 @@ import cn.sinata.xldutils.utils.ViewClickDelay.SPACE_TIME import cn.sinata.xldutils.utils.ViewClickDelay.hash import cn.sinata.xldutils.utils.ViewClickDelay.lastClickTime import com.driver.igotrip.BuildConfig import org.jetbrains.anko.internals.AnkoInternals import java.util.* import java.util.regex.Pattern @@ -187,16 +188,8 @@ context.startActivity(intent!!) } fun Activity.getVersionName(): String? { return try { val manager = this.packageManager val info = manager.getPackageInfo(this.packageName, 0) info.versionName } catch (e: Exception) { e.printStackTrace() "--" } fun Activity.getVersionName(): String { return BuildConfig.VERSION_NAME } object ViewClickDelay { easyfloat/src/main/java/com/lzf/easyfloat/permission/rom/MiuiUtils.java
@@ -92,7 +92,7 @@ if (intent == null) { return false; } return context.getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY).size() > 0; return context.getPackageManager().resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY)!=null; } /** easyfloat/src/main/java/com/lzf/easyfloat/permission/rom/QikuUtils.java
@@ -73,6 +73,6 @@ if (intent == null) { return false; } return context.getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY).size() > 0; return context.getPackageManager().resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY) != null; } } xldUtils/src/main/java/cn/sinata/xldutils/utils/Utils.java
@@ -330,38 +330,6 @@ } /** * 获取版本号 * @return 当前应用的版本号 */ public static String getAppVersion(Context context) { try { PackageManager manager = context.getPackageManager(); PackageInfo info = manager.getPackageInfo(context.getPackageName(), 0); String version = info.versionName; return version; } catch (Exception e) { e.printStackTrace(); return "未获取到版本号"; } } /** * 获取版本 * @return 当前应用的版本 */ public static int getAppVersionCode(Context context) { try { PackageManager manager = context.getPackageManager(); PackageInfo info = manager.getPackageInfo(context.getPackageName(), 0); int code = info.versionCode; return code; } catch (Exception e) { e.printStackTrace(); return -1; } } /** * 获取ip地址 * @param context * @return