Commit d221c9d5 by han xu

地图

parent 017a5e0d
...@@ -82,10 +82,10 @@ ...@@ -82,10 +82,10 @@
android:resizeableActivity="false" android:resizeableActivity="false"
tools:ignore="GoogleAppIndexingWarning" tools:ignore="GoogleAppIndexingWarning"
android:requestLegacyExternalStorage="true" android:requestLegacyExternalStorage="true"
android:networkSecurityConfig="@xml/network_security_config"
tools:replace="android:label,icon,theme,allowBackup"> tools:replace="android:label,icon,theme,allowBackup">
<provider <provider
android:name="androidx.core.content.FileProvider" android:name="androidx.core.content.FileProvider"
android:authorities="com.dayu.bigfish.fileProvider" android:authorities="com.dayu.bigfish.fileProvider"
...@@ -224,12 +224,15 @@ ...@@ -224,12 +224,15 @@
<uses-permission android:name="com.huawei.android.launcher.permission.CHANGE_BADGE" /> <uses-permission android:name="com.huawei.android.launcher.permission.CHANGE_BADGE" />
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"
tools:ignore="QueryAllPackagesPermission" />
<queries> <queries>
<package android:name="com.tencent.mm" /> <package android:name="com.tencent.mm" />
<package android:name="com.tencent.mobileqq" /> <package android:name="com.tencent.mobileqq" />
<package android:name="com.sina.weibo" /> <package android:name="com.sina.weibo" />
<package android:name="com.tencent.wework" /> <package android:name="com.tencent.wework" />
</queries> </queries>
</manifest> </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; ...@@ -4,6 +4,7 @@ import android.annotation.SuppressLint;
import android.content.ActivityNotFoundException; import android.content.ActivityNotFoundException;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo; import android.content.pm.PackageInfo;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.location.Address; import android.location.Address;
...@@ -162,21 +163,38 @@ public class LocationUtils { ...@@ -162,21 +163,38 @@ public class LocationUtils {
private static boolean isInstallPackage(Context mContext) { private static boolean isInstallPackage(Context mContext) {
PackageManager packageManager = mContext.getPackageManager(); PackageManager packageManager = mContext.getPackageManager();
List<PackageInfo> installedPackages = packageManager.getInstalledPackages(0); List<PackageInfo> installedPackages = packageManager.getInstalledPackages(0);
return true;
boolean isAMapInstalled = false; // boolean isAMapInstalled = false;
for (PackageInfo packageInfo : installedPackages) { // for (PackageInfo packageInfo : installedPackages) {
String packageName = packageInfo.packageName; // String packageName = packageInfo.packageName;
if (packageName.equals("com.autonavi.minimap")) { // Log.d("isAMapInstalled", "isInstallPackage: " + packageName);
isAMapInstalled = true; // if (packageName.equals("com.autonavi.minimap")) {
break; // isAMapInstalled = true;
} // break;
} // }
// }
return isAMapInstalled; //
// 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 { // try {
// // 检查设备是否已安装高德地图应用 //
// packageManager.getPackageInfo("com.autonavi.minimap", 0); // PackageInfo packageInfo = mContext.getPackageManager().getPackageInfo(packageName, 0);
// return true; // // 如果获取到包信息,返回true,说明应用已安装
// return packageInfo != null;
//
//// return true;
// } catch (PackageManager.NameNotFoundException e) { // } catch (PackageManager.NameNotFoundException e) {
// e.printStackTrace(); // e.printStackTrace();
// return false; // return false;
...@@ -188,8 +206,52 @@ public class LocationUtils { ...@@ -188,8 +206,52 @@ public class LocationUtils {
Intent intent = new Intent("android.intent.action.VIEW" Intent intent = new Intent("android.intent.action.VIEW"
, android.net.Uri.parse("androidamap://poi?sourceApplication=softname&keywords=" + address)); , android.net.Uri.parse("androidamap://poi?sourceApplication=softname&keywords=" + address));
intent.setPackage("com.autonavi.minimap"); 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"); 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 { } else {
listener.openMarket(); listener.openMarket();
} }
...@@ -204,6 +266,24 @@ public class LocationUtils { ...@@ -204,6 +266,24 @@ public class LocationUtils {
e.printStackTrace(); 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 { public interface OpenMarketListener {
void openMarket(); void openMarket();
......
...@@ -8,6 +8,7 @@ import android.Manifest; ...@@ -8,6 +8,7 @@ import android.Manifest;
import android.app.Activity; import android.app.Activity;
import android.content.BroadcastReceiver; import android.content.BroadcastReceiver;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.content.IntentFilter; import android.content.IntentFilter;
import android.graphics.Color; import android.graphics.Color;
...@@ -20,6 +21,9 @@ import android.util.Log; ...@@ -20,6 +21,9 @@ import android.util.Log;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.Toast;
import androidx.appcompat.app.AlertDialog;
import com.alibaba.android.arouter.launcher.ARouter; import com.alibaba.android.arouter.launcher.ARouter;
import com.bigkoo.pickerview.builder.OptionsPickerBuilder; import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
...@@ -119,7 +123,8 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi ...@@ -119,7 +123,8 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi
holder.orderLineOne.setVisibility(View.VISIBLE); holder.orderLineOne.setVisibility(View.VISIBLE);
holder.orderLineTwo.setVisibility(View.VISIBLE); holder.orderLineTwo.setVisibility(View.VISIBLE);
holder.tvItemProcess.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); holder.tvOrderTime.setText(R.string.tv_home_tab_one_subscribe_time);
final int id = item.getId(); final int id = item.getId();
...@@ -932,6 +937,36 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi ...@@ -932,6 +937,36 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi
customDialog.show(); 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() { private void showOpenMarketDialog() {
CustomDialog customDialog = new CustomDialog(mContext, R.style.CustomDialog, UIUtils.getString(R.string.download_gaode_notice) CustomDialog customDialog = new CustomDialog(mContext, R.style.CustomDialog, UIUtils.getString(R.string.download_gaode_notice)
, (dialog, confirm) -> { , (dialog, confirm) -> {
...@@ -943,6 +978,7 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi ...@@ -943,6 +978,7 @@ public class OrderAdapter extends CoreAdapter<Order, FragmentOrderdoingItemBindi
.setPositiveButton(UIUtils.getString(R.string.go_download)) .setPositiveButton(UIUtils.getString(R.string.go_download))
.setNegativeButton(UIUtils.getString(R.string.cancle)); .setNegativeButton(UIUtils.getString(R.string.cancle));
customDialog.show(); customDialog.show();
} }
private void showMoblieDialog(String mobile, String tel, int id) { private void showMoblieDialog(String mobile, String tel, int id) {
......
package com.dayu.order.ui.fragment; package com.dayu.order.ui.fragment;
import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.text.TextUtils; import android.text.TextUtils;
import android.view.View; import android.view.View;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AlertDialog;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
import com.alibaba.android.arouter.launcher.ARouter; import com.alibaba.android.arouter.launcher.ARouter;
...@@ -564,16 +567,40 @@ public class MultiOrderDetailFragment extends BaseFragment<SImplePresenter, Frag ...@@ -564,16 +567,40 @@ public class MultiOrderDetailFragment extends BaseFragment<SImplePresenter, Frag
} }
private void showOpenMarketDialog() { private void showOpenMarketDialog() {
CustomDialog customDialog = new CustomDialog(mActivity, R.style.CustomDialog, UIUtils.getString(R.string.download_gaode_notice) // CustomDialog customDialog = new CustomDialog(mActivity, R.style.CustomDialog, UIUtils.getString(R.string.download_gaode_notice)
, (dialog, confirm) -> { // , (dialog, confirm) -> {
if (confirm) { // if (confirm) {
LocationUtils.goToMarket(mActivity); // 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)) AlertDialog dialog= builder.create();
.setPositiveButton(UIUtils.getString(R.string.go_download)) dialog.show();
.setNegativeButton(UIUtils.getString(R.string.cancle));
customDialog.show();
} }
public String getStaus(int staus) { 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