Commit d221c9d5 by han xu

地图

parent 017a5e0d
......@@ -82,10 +82,10 @@
android:resizeableActivity="false"
tools:ignore="GoogleAppIndexingWarning"
android:requestLegacyExternalStorage="true"
android:networkSecurityConfig="@xml/network_security_config"
tools:replace="android:label,icon,theme,allowBackup">
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="com.dayu.bigfish.fileProvider"
......@@ -224,12 +224,15 @@
<uses-permission android:name="com.huawei.android.launcher.permission.CHANGE_BADGE" />
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"
tools:ignore="QueryAllPackagesPermission" />
<queries>
<package android:name="com.tencent.mm" />
<package android:name="com.tencent.mobileqq" />
<package android:name="com.sina.weibo" />
<package android:name="com.tencent.wework" />
</queries>
</manifest>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<certificates src="system" />
<certificates src="user" />
</trust-anchors>
</base-config>
</network-security-config>
\ No newline at end of file
......@@ -4,6 +4,7 @@ import android.annotation.SuppressLint;
import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.location.Address;
......@@ -162,21 +163,38 @@ public class LocationUtils {
private static boolean isInstallPackage(Context mContext) {
PackageManager packageManager = mContext.getPackageManager();
List<PackageInfo> installedPackages = packageManager.getInstalledPackages(0);
return true;
boolean isAMapInstalled = false;
for (PackageInfo packageInfo : installedPackages) {
String packageName = packageInfo.packageName;
if (packageName.equals("com.autonavi.minimap")) {
isAMapInstalled = true;
break;
}
}
return isAMapInstalled;
// boolean isAMapInstalled = false;
// for (PackageInfo packageInfo : installedPackages) {
// String packageName = packageInfo.packageName;
// Log.d("isAMapInstalled", "isInstallPackage: " + packageName);
// if (packageName.equals("com.autonavi.minimap")) {
// isAMapInstalled = true;
// break;
// }
// }
//
// PackageManager pm = mContext.getPackageManager();
// List<ApplicationInfo> apps = pm.getInstalledApplications(0);
//
// for (ApplicationInfo app : apps) {
// String packageName = app.packageName;
// String appName = pm.getApplicationLabel(app).toString();
// // 打印或处理其他信息
// Log.i("InstalledApp", "Package Name: " + packageName + ", App Name: " + appName);
// }
//// return isAMapInstalled;
//
// String packageName = "com.autonavi.minimap";
//
// try {
// // 检查设备是否已安装高德地图应用
// packageManager.getPackageInfo("com.autonavi.minimap", 0);
// return true;
//
// PackageInfo packageInfo = mContext.getPackageManager().getPackageInfo(packageName, 0);
// // 如果获取到包信息,返回true,说明应用已安装
// return packageInfo != null;
//
//// return true;
// } catch (PackageManager.NameNotFoundException e) {
// e.printStackTrace();
// return false;
......@@ -188,8 +206,52 @@ public class LocationUtils {
Intent intent = new Intent("android.intent.action.VIEW"
, android.net.Uri.parse("androidamap://poi?sourceApplication=softname&keywords=" + address));
intent.setPackage("com.autonavi.minimap");
try {
mContext.startActivity(intent);
} catch (ActivityNotFoundException e) {
e.printStackTrace();
listener.openMarket();
}
} else {
listener.openMarket();
}
}
public static void openMap_gaode(Context mContext, String address, OpenMarketListener listener) {
if (isInstallPackage(mContext)) {
Intent intent = new Intent("android.intent.action.VIEW"
, android.net.Uri.parse("androidamap://poi?sourceApplication=softname&keywords=" + address));
intent.setPackage("com.autonavi.minimap");
intent.addCategory("android.intent.category.DEFAULT");
mContext.startActivity(intent);
try {
mContext.startActivity(intent);
} catch (ActivityNotFoundException e) {
e.printStackTrace();
listener.openMarket();
}
} else {
listener.openMarket();
}
}
public static void openMap_baidu(Context mContext, String address, OpenMarketListener listener) {
if (isInstallPackage(mContext)) {
Intent intent = new Intent();
intent.setData(Uri.parse("baidumap://map/direction?destination=" +
address+"&mode=driving&sy=0&index=0&target=1"));
intent.setPackage("com.baidu.BaiduMap");
try {
mContext.startActivity(intent);
} catch (ActivityNotFoundException e) {
e.printStackTrace();
listener.openMarket();
}
} else {
listener.openMarket();
}
......@@ -204,6 +266,24 @@ public class LocationUtils {
e.printStackTrace();
}
}
public static void goToMarket_gaode(Context context) {
Uri uri = Uri.parse("market://details?id=" + "com.autonavi.minimap");
Intent goToMarket = new Intent(Intent.ACTION_VIEW, uri);
try {
context.startActivity(goToMarket);
} catch (ActivityNotFoundException e) {
e.printStackTrace();
}
}
public static void goToMarket_baidu(Context context) {
Uri uri = Uri.parse("market://details?id=" + "com.baidu.BaiduMap");
Intent goToMarket = new Intent(Intent.ACTION_VIEW, uri);
try {
context.startActivity(goToMarket);
} catch (ActivityNotFoundException e) {
e.printStackTrace();
}
}
public interface OpenMarketListener {
void openMarket();
......
......@@ -8,6 +8,7 @@ import android.Manifest;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
import android.graphics.Color;
......@@ -20,6 +21,9 @@ import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.Toast;
import androidx.appcompat.app.AlertDialog;
import com.alibaba.android.arouter.launcher.ARouter;
import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
......@@ -119,7 +123,8 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi
holder.orderLineOne.setVisibility(View.VISIBLE);
holder.orderLineTwo.setVisibility(View.VISIBLE);
holder.tvItemProcess.setVisibility(View.VISIBLE);
holder.navigation.setOnClickListener(v -> LocationUtils.openMap(mContext, address, this::showOpenMarketDialog));
// holder.navigation.setOnClickListener(v -> LocationUtils.openMap(mContext, address, this::showOpenMarketDialog));
holder.navigation.setOnClickListener(v-> this.showOpenMarketDialog_select(address));
holder.tvOrderTime.setText(R.string.tv_home_tab_one_subscribe_time);
final int id = item.getId();
......@@ -932,6 +937,36 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi
customDialog.show();
}
private void showOpenMarketDialog_select(String address) {
final String[] items={"高德地图","百度地图"};
AlertDialog dialog=new AlertDialog.Builder(getContext()).setItems(items, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// Toast.makeText(getContext(), items[which], Toast.LENGTH_SHORT).show();
//复杂的业务逻辑
// Mytask( items[which]);
switch (which){
case 0 :{
LocationUtils.openMap_gaode(mContext, address, OrderAdapter.this::showOpenMarketDialog);
break;
}
case 1 :{
LocationUtils.openMap_baidu(mContext, address, OrderAdapter.this::showOpenMarketDialog);
break;
}
default:
}
}
}).create();
dialog.setTitle("选择打开地图:");
dialog.show();
}
private void showOpenMarketDialog() {
CustomDialog customDialog = new CustomDialog(mContext, R.style.CustomDialog, UIUtils.getString(R.string.download_gaode_notice)
, (dialog, confirm) -> {
......@@ -943,6 +978,7 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi
.setPositiveButton(UIUtils.getString(R.string.go_download))
.setNegativeButton(UIUtils.getString(R.string.cancle));
customDialog.show();
}
private void showMoblieDialog(String mobile, String tel, int id) {
......
package com.dayu.order.ui.fragment;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AlertDialog;
import androidx.recyclerview.widget.LinearLayoutManager;
import com.alibaba.android.arouter.launcher.ARouter;
......@@ -564,16 +567,40 @@ public class MultiOrderDetailFragment extends BaseFragment<SImplePresenter, Frag
}
private void showOpenMarketDialog() {
CustomDialog customDialog = new CustomDialog(mActivity, R.style.CustomDialog, UIUtils.getString(R.string.download_gaode_notice)
, (dialog, confirm) -> {
if (confirm) {
LocationUtils.goToMarket(mActivity);
// CustomDialog customDialog = new CustomDialog(mActivity, R.style.CustomDialog, UIUtils.getString(R.string.download_gaode_notice)
// , (dialog, confirm) -> {
// if (confirm) {
// LocationUtils.goToMarket(mActivity);
// }
// });
// customDialog.setTitle(UIUtils.getString(R.string.reminder))
// .setPositiveButton(UIUtils.getString(R.string.go_download))
// .setNegativeButton(UIUtils.getString(R.string.cancle));
// customDialog.show();
// 选择项的文字
// String[] items = {"选项1", "选项2", "选项3", "选项4"};
// 记录选择状态的布尔数组
// boolean[] checkedItems = new boolean[items.length];
// 创建AlertDialog.Builder
// AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
final String[] items={"打开高德地图","打开百度地图"};
AlertDialog.Builder builder=new AlertDialog.Builder(getContext());
builder.setSingleChoiceItems(items, 0, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(getContext(), items[which], Toast.LENGTH_SHORT).show();
dialog.dismiss();
}
});
customDialog.setTitle(UIUtils.getString(R.string.reminder))
.setPositiveButton(UIUtils.getString(R.string.go_download))
.setNegativeButton(UIUtils.getString(R.string.cancle));
customDialog.show();
AlertDialog dialog= builder.create();
dialog.show();
}
public String getStaus(int staus) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment