@@ -1,16 +1,21 @@ | |||
package com.nsgk.ruralWeb; | |||
import android.annotation.SuppressLint; | |||
import android.content.Context; | |||
import android.content.Intent; | |||
import android.content.pm.PackageManager; | |||
import android.graphics.Bitmap; | |||
import android.os.Build; | |||
import android.os.Bundle; | |||
import android.os.Handler; | |||
import android.util.Log; | |||
import android.view.KeyEvent; | |||
import android.view.ViewGroup; | |||
import android.webkit.ConsoleMessage; | |||
import android.webkit.GeolocationPermissions; | |||
import android.webkit.WebBackForwardList; | |||
import android.webkit.WebHistoryItem; | |||
import android.webkit.WebSettings; | |||
import android.webkit.WebView; | |||
import android.widget.LinearLayout; | |||
import android.widget.RelativeLayout; | |||
@@ -57,6 +62,9 @@ public class FullscreenActivity extends AppCompatActivity { | |||
setContentView(R.layout.activity_fullscreen); | |||
String appHomeUrl = GetHomeUrl(); | |||
boolean logcatConsole = GetPreference().GetBool(NSPreference.LOGCAT_CONSOLE_OUTPUT, NSContextUtils.BuildIsDebug(this)); | |||
if(logcatConsole) | |||
Log.i(ID_TAG, logcatConsole ? "输出控制台到logcat" : "不输出控制台"); | |||
//appHomeUrl = "http://192.168.0.250:85/sunVillage_info/login"; | |||
Log.i(ID_TAG, "App home url: " + appHomeUrl); | |||
// init(); | |||
@@ -84,6 +92,38 @@ public class FullscreenActivity extends AppCompatActivity { | |||
} | |||
m_lastUrl = url; | |||
} | |||
@Override | |||
public boolean onConsoleMessage(ConsoleMessage consoleMessage) | |||
{ | |||
if(logcatConsole) | |||
{ | |||
String text = "[" + consoleMessage.sourceId() + ":" + consoleMessage.lineNumber() + "] " + consoleMessage.message(); | |||
switch(consoleMessage.messageLevel()) | |||
{ | |||
case WARNING: | |||
Log.w("Console", text); | |||
break; | |||
case ERROR: | |||
Log.e("Console", text); | |||
break; | |||
case DEBUG: | |||
Log.d("Console", text); | |||
break; | |||
case LOG: | |||
default: | |||
Log.i("Console", text); | |||
break; | |||
} | |||
} | |||
return super.onConsoleMessage(consoleMessage); | |||
} | |||
@Override | |||
public void onGeolocationPermissionsShowPrompt(String origin, GeolocationPermissions.Callback callback) { | |||
callback.invoke(origin, true, false); | |||
super.onGeolocationPermissionsShowPrompt(origin, callback); | |||
} | |||
}) | |||
.setWebViewClient(new WebViewClient() { | |||
})//WebViewClient , 与 WebView 使用一致 ,但是请勿获取WebView调用setWebViewClient(xx)方法了,会覆盖AgentWeb DefaultWebClient,同时相应的中间件也会失效。 | |||
@@ -111,14 +151,21 @@ public class FullscreenActivity extends AppCompatActivity { | |||
mAgentWeb = builder.go(appHomeUrl); //WebView载入该url地址的页面并显示。 | |||
WebSettings settings = GetWebView().getSettings(); | |||
int fontScale = GetPreference().GetInt(NSPreference.FONT_SCALE); | |||
Log.i(ID_TAG, "全局字体缩放: " + fontScale + "%"); | |||
if(fontScale > 0 && fontScale != 100) | |||
GetWebView().getSettings().setTextZoom(fontScale); | |||
settings.setTextZoom(fontScale); | |||
settings.setDatabaseEnabled(true); | |||
settings.setDomStorageEnabled(true); | |||
settings.setGeolocationEnabled(true); | |||
// 注入宿主对象 | |||
envWindowObject = new NSEnvWindowObject(this, new Handler(), GetWebView()); | |||
mAgentWeb.getJsInterfaceHolder().addJavaObject("_Native_object", envWindowObject); | |||
mAgentWeb.getJsInterfaceHolder().addJavaObject("Android", envWindowObject); | |||
/* 上边url是各个APP项目的入口地址 | |||
事项审批 http://116.255.223.226:82/yinnongLogin 图标 ic_launcher_sxsp 或者 ic_launcher_yhzl | |||
@@ -2,13 +2,14 @@ package com.nsgk.ruralWeb.enums; | |||
public final class NSEnums | |||
{ | |||
public final class LocationScheme | |||
public final class LocationMode | |||
{ | |||
public static final String SYSTEM = "system"; | |||
public static final String GAODE = "gaode"; | |||
public static final String REALTIME = "realtime"; | |||
public static final String H5 = "h5"; | |||
private LocationScheme() {} | |||
private LocationMode() {} | |||
} | |||
public final class LocationProvider | |||
@@ -410,7 +410,7 @@ public class NSAMapLocation implements AMapLocationListener | |||
/** | |||
* 同步调用, 会锁住线程 | |||
*/ | |||
public NSLocationInfo Read(int count) | |||
public NSLocationInfo Read(int count, int timeout) | |||
{ | |||
CheckInitialization(true); | |||
/* if(IsRunning()) | |||
@@ -418,14 +418,16 @@ public class NSAMapLocation implements AMapLocationListener | |||
throw new RuntimeException("请先停止定位"); | |||
}*/ | |||
Log.d(ID_TAG, "定位线程: " + Thread.currentThread().getId()); | |||
if(timeout < 0) | |||
timeout = 0; | |||
Log.d(ID_TAG, "AMap定位线程: " + Thread.currentThread().getId() + ", 超时设置: " + timeout); | |||
synchronized(m_lock) | |||
{ | |||
try | |||
{ | |||
CleanLastLocation(); | |||
Run(count); | |||
m_lock.wait(); | |||
m_lock.wait(timeout); | |||
} | |||
catch(Exception e) | |||
{ | |||
@@ -303,7 +303,7 @@ public class NSRealtimeLocation implements LocationListener | |||
/** | |||
* 同步调用, 会锁住线程 | |||
*/ | |||
public NSLocationInfo Read(int count) | |||
public NSLocationInfo Read(int count, int timeout) | |||
{ | |||
CheckInitialization(true); | |||
/* if(IsRunning()) | |||
@@ -311,14 +311,16 @@ public class NSRealtimeLocation implements LocationListener | |||
throw new RuntimeException("请先停止定位"); | |||
}*/ | |||
Log.d(ID_TAG, "定位线程: " + Thread.currentThread().getId()); | |||
if(timeout < 0) | |||
timeout = 0; | |||
Log.d(ID_TAG, "实时定位线程: " + Thread.currentThread().getId() + ", 超时设置: " + timeout); | |||
synchronized(m_lock) | |||
{ | |||
try | |||
{ | |||
CleanLastLocation(); | |||
Run(count); | |||
m_lock.wait(); | |||
m_lock.wait(timeout); | |||
} | |||
catch(Exception e) | |||
{ | |||
@@ -42,16 +42,23 @@ public final class NSConstants | |||
return BuildConfig.APP_ICON; | |||
} | |||
public static boolean IsHttps() | |||
{ | |||
return AppHomeUrl().startsWith("https://"); | |||
} | |||
// 偏好默认值 | |||
public static final String DEFAULT_LOCATION_SCHEME = NSEnums.LocationScheme.REALTIME; | |||
public static final String DEFAULT_LOCATION_MODE = NSEnums.LocationMode.REALTIME; | |||
public static final int DEFAULT_LOCATION_GAODE_INTERVAL = 1000; | |||
public static final int DEFAULT_LOCATION_GAODE_READ_COUNT = 1; | |||
public static final String DEFAULT_LOCATION_PROVIDER = LocationManager.GPS_PROVIDER; | |||
public static final int DEFAULT_LOCATION_REALTIME_INTERVAL = 1000; | |||
public static final int DEFAULT_LOCATION_REALTIME_DISTANCE = 1; | |||
public static final int DEFAULT_LOCATION_REALTIME_DISTANCE = 0; // 1 | |||
public static final int DEFAULT_LOCATION_REALTIME_READ_COUNT = 1; | |||
public static final boolean DEFAULT_OPEN_LAST_URL = false; | |||
public static final int DEFAULT_FONT_SCALE = 100; | |||
public static final boolean DEFAULT_LOGCAT_CONSOLE_OUTPUT = false; | |||
public static final int DEFAULT_LOCATION_TIMEOUT = 0; | |||
private NSConstants() {} | |||
} |
@@ -8,19 +8,21 @@ import com.nsgk.ruralWeb.utils.NSStr; | |||
public final class NSPreference | |||
{ | |||
public static final String LOCATION_SCHEME = "location_scheme"; | |||
public static final String LOCATION_MODE = "location_mode"; | |||
public static final String LOCATION_GAODE_INTERVAL = "location_gaode_interval"; | |||
public static final String LOCATION_GAODE_READ_COUNT = "location_gaode_read_count"; | |||
public static final String LOCATION_PROVIDER = "location_provider"; | |||
public static final String LOCATION_PROVIDER = "location_provider"; | |||
public static final String LOCATION_REALTIME_INTERVAL = "location_realtime_interval"; | |||
public static final String LOCATION_REALTIME_DISTANCE = "location_realtime_distance"; | |||
public static final String LOCATION_REALTIME_READ_COUNT = "location_realtime_read_count"; | |||
public static final String OPEN_LAST_URL = "open_last_url"; | |||
public static final String LAST_ACCESS_URL = "last_access_url"; | |||
public static final String COOKIES = "cookies"; | |||
public static final String FONT_SCALE = "font_scale"; | |||
public static final String FONT_SCALE = "font_scale"; | |||
public static final String LOGCAT_CONSOLE_OUTPUT = "logcat_console_output"; | |||
public static final String LOCATION_TIMEOUT = "location_timeout"; | |||
public static final String RESET_SETTINGS = "RESET_SETTINGS"; | |||
public static final String VERSION = "VERSION"; | |||
public static final String VERSION = "VERSION"; | |||
private final Context context; | |||
@@ -5,6 +5,7 @@ import android.content.DialogInterface; | |||
import android.content.SharedPreferences; | |||
import android.os.Bundle; | |||
import android.text.Html; | |||
import android.util.Log; | |||
import android.widget.Toast; | |||
import androidx.appcompat.app.AlertDialog; | |||
@@ -15,10 +16,14 @@ import androidx.preference.SeekBarPreference; | |||
import com.nsgk.ruralWeb.BuildConfig; | |||
import com.nsgk.ruralWeb.R; | |||
import com.nsgk.ruralWeb.enums.NSEnums; | |||
import com.nsgk.ruralWeb.sys.NSConstants; | |||
import com.nsgk.ruralWeb.sys.NSPreference; | |||
import com.nsgk.ruralWeb.utils.NSContextUtils; | |||
import com.nsgk.ruralWeb.utils.NSMisc; | |||
import com.nsgk.ruralWeb.utils.NSStr; | |||
import java.util.Objects; | |||
import cn.hutool.core.util.NumberUtil; | |||
import cn.hutool.core.util.StrUtil; | |||
@@ -33,8 +38,8 @@ public class SettingsFragment extends PreferenceFragmentCompat implements Prefer | |||
Preference preference; | |||
final Context context = getContext(); | |||
preference = findPreference(NSPreference.LOCATION_SCHEME); | |||
preference.setDefaultValue(NSConstants.DEFAULT_LOCATION_SCHEME); | |||
preference = findPreference(NSPreference.LOCATION_MODE); | |||
preference.setDefaultValue(NSConstants.DEFAULT_LOCATION_MODE); | |||
preference.setOnPreferenceChangeListener(this); | |||
preference = findPreference(NSPreference.LOCATION_GAODE_INTERVAL); | |||
@@ -69,11 +74,22 @@ public class SettingsFragment extends PreferenceFragmentCompat implements Prefer | |||
preference.setDefaultValue(NSConstants.DEFAULT_FONT_SCALE); | |||
preference.setOnPreferenceChangeListener(this); | |||
preference = findPreference(NSPreference.LOGCAT_CONSOLE_OUTPUT); | |||
preference.setDefaultValue("" + NSConstants.DEFAULT_LOGCAT_CONSOLE_OUTPUT); | |||
preference.setOnPreferenceChangeListener(this); | |||
preference = findPreference(NSPreference.LOCATION_TIMEOUT); | |||
preference.setDefaultValue("" + NSConstants.DEFAULT_LOCATION_TIMEOUT); | |||
preference.setOnPreferenceChangeListener(this); | |||
preference = findPreference(NSPreference.RESET_SETTINGS); | |||
preference.setOnPreferenceClickListener(this); | |||
preference = findPreference(NSPreference.VERSION); | |||
preference.setOnPreferenceClickListener(this); | |||
preference = findPreference("location_gaode"); | |||
preference.setVisible(false); | |||
} | |||
private boolean CheckValueIsNumber(Object newValue, Integer min) | |||
@@ -128,6 +144,10 @@ public class SettingsFragment extends PreferenceFragmentCompat implements Prefer | |||
if(!CheckValueIsNumber(newValue, 1)) | |||
return false; | |||
break; | |||
case NSPreference.LOCATION_TIMEOUT: | |||
if(!CheckValueIsNumber(newValue, 0)) | |||
return false; | |||
break; | |||
case NSPreference.FONT_SCALE: { | |||
int i = (int)newValue; | |||
int newi = Math.round((float)i / 10.0f) * 10; | |||
@@ -143,6 +163,22 @@ public class SettingsFragment extends PreferenceFragmentCompat implements Prefer | |||
} | |||
break; | |||
} | |||
case NSPreference.LOCATION_MODE: | |||
if(Objects.equals(NSEnums.LocationMode.GAODE, newValue)) | |||
{ | |||
Log.w(ID_TAG, "高德定位被禁用"); | |||
return false; | |||
} | |||
if(Objects.equals(NSEnums.LocationMode.H5, newValue)) | |||
{ | |||
if(!NSConstants.IsHttps()) | |||
{ | |||
Log.w(ID_TAG, "非https不支持H5定位"); | |||
Toast.makeText(getContext(), "当前不支持H5定位", Toast.LENGTH_SHORT).show(); | |||
return false; | |||
} | |||
} | |||
break; | |||
} | |||
SetSummary(key, newValue); | |||
@@ -174,7 +210,7 @@ public class SettingsFragment extends PreferenceFragmentCompat implements Prefer | |||
{ | |||
NSPreference preference = new NSPreference(getContext()); | |||
preference.Write() | |||
.putString(NSPreference.LOCATION_SCHEME, NSConstants.DEFAULT_LOCATION_SCHEME) | |||
.putString(NSPreference.LOCATION_MODE, NSConstants.DEFAULT_LOCATION_MODE) | |||
.putString(NSPreference.LOCATION_GAODE_INTERVAL, "" + NSConstants.DEFAULT_LOCATION_GAODE_INTERVAL) | |||
.putString(NSPreference.LOCATION_GAODE_READ_COUNT, "" + NSConstants.DEFAULT_LOCATION_GAODE_READ_COUNT) | |||
.putBoolean(NSPreference.OPEN_LAST_URL, NSConstants.DEFAULT_OPEN_LAST_URL) | |||
@@ -183,6 +219,8 @@ public class SettingsFragment extends PreferenceFragmentCompat implements Prefer | |||
.putString(NSPreference.LOCATION_REALTIME_DISTANCE, "" + NSConstants.DEFAULT_LOCATION_REALTIME_DISTANCE) | |||
.putString(NSPreference.LOCATION_REALTIME_READ_COUNT, "" + NSConstants.DEFAULT_LOCATION_REALTIME_READ_COUNT) | |||
.putInt(NSPreference.FONT_SCALE, NSConstants.DEFAULT_FONT_SCALE) | |||
.putString(NSPreference.LOCATION_TIMEOUT, "" + NSConstants.DEFAULT_LOCATION_TIMEOUT) | |||
.putBoolean(NSPreference.LOGCAT_CONSOLE_OUTPUT, NSConstants.DEFAULT_LOGCAT_CONSOLE_OUTPUT) | |||
.commit() | |||
; | |||
} | |||
@@ -229,11 +267,11 @@ public class SettingsFragment extends PreferenceFragmentCompat implements Prefer | |||
int i; | |||
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context); | |||
if(key == null || NSPreference.LOCATION_SCHEME.equals(key)) | |||
if(key == null || NSPreference.LOCATION_MODE.equals(key)) | |||
{ | |||
preference = findPreference(NSPreference.LOCATION_SCHEME); | |||
value = newValue != null ? newValue.toString() : sharedPreferences.getString(NSPreference.LOCATION_SCHEME, NSConstants.DEFAULT_LOCATION_SCHEME); | |||
summary = NSContextUtils.GetListName(context, value, R.array.location_scheme_values, R.array.location_scheme_labels); | |||
preference = findPreference(NSPreference.LOCATION_MODE); | |||
value = newValue != null ? newValue.toString() : sharedPreferences.getString(NSPreference.LOCATION_MODE, NSConstants.DEFAULT_LOCATION_MODE); | |||
summary = NSContextUtils.GetListName(context, value, R.array.location_mode_values, R.array.location_mode_labels); | |||
preference.setSummary(summary); | |||
} | |||
@@ -303,6 +341,23 @@ public class SettingsFragment extends PreferenceFragmentCompat implements Prefer | |||
preference.setSummary(summary); | |||
} | |||
if(key == null || NSPreference.LOCATION_TIMEOUT.equals(key)) | |||
{ | |||
preference = findPreference(NSPreference.LOCATION_TIMEOUT); | |||
value = newValue != null && StrUtil.isNotBlank(newValue.toString()) ? newValue.toString() : sharedPreferences.getString(NSPreference.LOCATION_TIMEOUT, "" + NSConstants.DEFAULT_LOCATION_TIMEOUT); | |||
i = NSStr.parseInt_s(value, 0); | |||
summary = i > 0 ? i + "毫秒" : "不超时"; | |||
preference.setSummary(summary); | |||
} | |||
if(key == null || NSPreference.LOGCAT_CONSOLE_OUTPUT.equals(key)) | |||
{ | |||
preference = findPreference(NSPreference.LOGCAT_CONSOLE_OUTPUT); | |||
b = newValue != null ? (Boolean)newValue : sharedPreferences.getBoolean(NSPreference.LOGCAT_CONSOLE_OUTPUT, NSConstants.DEFAULT_LOGCAT_CONSOLE_OUTPUT); | |||
summary = b ? "控制台输出到logcat" : "不输出控制台"; | |||
preference.setSummary(summary); | |||
} | |||
findPreference(NSPreference.VERSION).setSummary(NSContextUtils.GetAppVersion(getContext())); | |||
} | |||
} | |||
@@ -3,7 +3,9 @@ package com.nsgk.ruralWeb.web; | |||
import android.app.Activity; | |||
import android.Manifest; | |||
import android.app.AlertDialog; | |||
import android.content.Context; | |||
import android.content.DialogInterface; | |||
import android.content.pm.PackageManager; | |||
import android.location.LocationManager; | |||
import android.os.Handler; | |||
@@ -16,6 +18,7 @@ import android.widget.Toast; | |||
import androidx.core.app.ActivityCompat; | |||
import com.nsgk.ruralWeb.FullscreenActivity; | |||
import com.nsgk.ruralWeb.R; | |||
import com.nsgk.ruralWeb.enums.NSEnums; | |||
import com.nsgk.ruralWeb.location.NSLocationInfo; | |||
import com.nsgk.ruralWeb.location.NSAMapLocation; | |||
@@ -25,6 +28,10 @@ import com.nsgk.ruralWeb.sys.NSConstants; | |||
import com.nsgk.ruralWeb.sys.NSPreference; | |||
import com.nsgk.ruralWeb.utils.NSContextUtils; | |||
import java.util.ArrayList; | |||
import java.util.Arrays; | |||
import java.util.List; | |||
public class NSEnvWindowObject | |||
{ | |||
private static final String ID_TAG = NSEnvWindowObject.class.getName(); | |||
@@ -95,22 +102,22 @@ public class NSEnvWindowObject | |||
} | |||
NSLocationInfo loc; | |||
String location = preference.GetString(NSPreference.LOCATION_SCHEME, NSConstants.DEFAULT_LOCATION_SCHEME); | |||
String location = CurrentLocationMode(); | |||
String provider = preference.GetString(NSPreference.LOCATION_PROVIDER, NSConstants.DEFAULT_LOCATION_PROVIDER); | |||
Log.d(ID_TAG, "定位提供器: " + provider); | |||
switch(location) | |||
{ | |||
case NSEnums.LocationScheme.GAODE: | |||
case NSEnums.LocationMode.GAODE: | |||
loc = GetAMapLocation(); | |||
if(null == loc) | |||
loc = GetBuiltInLocation(provider); | |||
break; | |||
case NSEnums.LocationScheme.REALTIME: | |||
case NSEnums.LocationMode.REALTIME: | |||
loc = GetRealtimeLocation(); | |||
if(null == loc) | |||
loc = GetBuiltInLocation(provider); | |||
break; | |||
case NSEnums.LocationScheme.SYSTEM: | |||
case NSEnums.LocationMode.SYSTEM: | |||
default: | |||
loc = GetBuiltInLocation(provider); | |||
break; | |||
@@ -119,6 +126,97 @@ public class NSEnvWindowObject | |||
return SetLastLocation(loc); | |||
} | |||
public String CurrentLocationMode() | |||
{ | |||
return preference.GetString(NSPreference.LOCATION_MODE, NSConstants.DEFAULT_LOCATION_MODE); | |||
} | |||
@JavascriptInterface | |||
public String GetLocationMode() | |||
{ | |||
return CurrentLocationMode(); | |||
} | |||
@JavascriptInterface | |||
public int GetLocationTimeout() | |||
{ | |||
return preference.GetIntFromString(NSPreference.LOCATION_TIMEOUT, NSConstants.DEFAULT_LOCATION_TIMEOUT); | |||
} | |||
@JavascriptInterface | |||
public String SelectLocationMode() | |||
{ | |||
final Object lock = new Object(); | |||
String current = CurrentLocationMode(); | |||
String[] res = { current }; | |||
synchronized(lock) { | |||
try | |||
{ | |||
RunOnUIThread(() -> { | |||
AlertDialog.Builder builder = new AlertDialog.Builder(m_context); | |||
String[] locationModeLabels = m_context.getResources().getStringArray(R.array.location_mode_labels); | |||
String[] locationModeValues = m_context.getResources().getStringArray(R.array.location_mode_values); | |||
List<String> locationModeList = new ArrayList<>(Arrays.asList(locationModeLabels)); | |||
List<String> locationModeValueList = new ArrayList<>(Arrays.asList(locationModeValues)); | |||
int[] selected = { locationModeValueList.indexOf(current) }; | |||
builder.setTitle("选择定位方式") | |||
.setSingleChoiceItems(locationModeList.toArray(new String[0]), selected[0], (DialogInterface dialog, int which) -> { | |||
selected[0] = which; | |||
}) | |||
//.setCancelable(false) | |||
; | |||
builder.setPositiveButton("确定", (DialogInterface dialog, int which) -> { | |||
if(selected[0] >= 0) | |||
{ | |||
String mode = locationModeValueList.get(selected[0]); | |||
if(NSEnums.LocationMode.H5.equalsIgnoreCase(mode)) | |||
{ | |||
if(!NSConstants.IsHttps()) | |||
{ | |||
Toast.makeText(m_context, "当前不支持H5定位", Toast.LENGTH_SHORT).show(); | |||
return; | |||
} | |||
} | |||
preference.SetString(NSPreference.LOCATION_MODE, mode); | |||
res[0] = mode; | |||
String name = locationModeList.get(selected[0]); | |||
Toast.makeText(m_context, "使用" + name + "定位", Toast.LENGTH_SHORT).show(); | |||
} | |||
else | |||
Toast.makeText(m_context, "请选择定位方式", Toast.LENGTH_SHORT).show(); | |||
}); | |||
builder.setNeutralButton("默认", (DialogInterface dialog, int which) -> { | |||
res[0] = NSConstants.DEFAULT_LOCATION_MODE; | |||
preference.SetString(NSPreference.LOCATION_MODE, res[0]); | |||
int choose = locationModeValueList.indexOf(res[0]); | |||
String name = locationModeList.get(choose); | |||
Toast.makeText(m_context, "使用" + name + "定位", Toast.LENGTH_SHORT).show(); | |||
}); | |||
builder.setNegativeButton("取消", null); | |||
AlertDialog dialog = builder.create(); | |||
dialog.setOnDismissListener((DialogInterface d) -> { | |||
synchronized(lock) { | |||
lock.notifyAll(); | |||
} | |||
}); | |||
dialog.show(); | |||
}); | |||
lock.wait(); | |||
} | |||
catch(Exception e) | |||
{ | |||
e.printStackTrace(); | |||
} | |||
} | |||
return res[0]; | |||
} | |||
private String ReturnLocation(NSLocationInfo loc) | |||
{ | |||
return loc.longitude + "," + loc.latitude; | |||
@@ -170,7 +268,9 @@ public class NSEnvWindowObject | |||
realtimeLocation.Init(flag); | |||
} | |||
long start = System.currentTimeMillis(); | |||
loc = realtimeLocation.Read(preference.GetIntFromString(NSPreference.LOCATION_REALTIME_READ_COUNT, NSConstants.DEFAULT_LOCATION_REALTIME_READ_COUNT)); | |||
int count = preference.GetIntFromString(NSPreference.LOCATION_REALTIME_READ_COUNT, NSConstants.DEFAULT_LOCATION_REALTIME_READ_COUNT); | |||
int timeout = preference.GetIntFromString(NSPreference.LOCATION_TIMEOUT, NSConstants.DEFAULT_LOCATION_TIMEOUT); | |||
loc = realtimeLocation.Read(count, timeout); | |||
long end = System.currentTimeMillis(); | |||
Log.i(ID_TAG, "系统实时定位结果: " + loc + ", 耗时=" + (end - start) + "毫秒"); | |||
} | |||
@@ -194,7 +294,9 @@ public class NSEnvWindowObject | |||
amapLocation.Init(NSAMapLocation.DEFAULT_FLAG | NSAMapLocation.FLAG_BUILTIN_THREAD); | |||
} | |||
long start = System.currentTimeMillis(); | |||
loc = amapLocation.Read(preference.GetIntFromString(NSPreference.LOCATION_GAODE_READ_COUNT, NSConstants.DEFAULT_LOCATION_GAODE_READ_COUNT)); | |||
int count = preference.GetIntFromString(NSPreference.LOCATION_GAODE_READ_COUNT, NSConstants.DEFAULT_LOCATION_GAODE_READ_COUNT); | |||
int timeout = preference.GetIntFromString(NSPreference.LOCATION_TIMEOUT, NSConstants.DEFAULT_LOCATION_TIMEOUT); | |||
loc = amapLocation.Read(count, timeout); | |||
long end = System.currentTimeMillis(); | |||
Log.i(ID_TAG, "高德定位结果: " + loc + ", 耗时=" + (end - start) + "毫秒"); | |||
} | |||
@@ -2,25 +2,27 @@ | |||
<resources> | |||
<string-array name="location_scheme_values"> | |||
<item>system</item> | |||
<item>gaode</item> | |||
<string-array name="location_mode_labels"> | |||
<item>系统(实时)</item> | |||
<item>系统</item> | |||
<item>H5</item> | |||
<!--<item>高德</item>--> | |||
</string-array> | |||
<string-array name="location_mode_values"> | |||
<item>realtime</item> | |||
<item>system</item> | |||
<item>h5</item> | |||
<!--<item>gaode</item>--> | |||
</string-array> | |||
<string-array name="location_scheme_labels"> | |||
<item>系统</item> | |||
<item>高德</item> | |||
<item>系统实时</item> | |||
<string-array name="location_provider_labels"> | |||
<item>卫星</item> | |||
<item>网络</item> | |||
</string-array> | |||
<string-array name="location_provider_values"> | |||
<item>gps</item> | |||
<item>network</item> | |||
</string-array> | |||
<string-array name="location_provider_labels"> | |||
<item>GPS</item> | |||
<item>网络</item> | |||
</string-array> | |||
</resources> |
@@ -26,14 +26,23 @@ | |||
/> | |||
<ListPreference | |||
android:dialogTitle="定位方式" | |||
android:key="location_scheme" | |||
android:entries="@array/location_scheme_labels" | |||
android:entryValues="@array/location_scheme_values" | |||
android:key="location_mode" | |||
android:entries="@array/location_mode_labels" | |||
android:entryValues="@array/location_mode_values" | |||
android:summary="定位方式" | |||
android:persistent="true" | |||
android:title="选择定位方式" | |||
android:defaultValue="realtime" | |||
/> | |||
<EditTextPreference | |||
android:dialogTitle="定位超时(毫秒) 0为不超时" | |||
android:key="location_timeout" | |||
android:summary="定位超时" | |||
android:persistent="true" | |||
android:title="设置定位超时" | |||
android:inputType="number" | |||
android:defaultValue="0" | |||
/> | |||
</PreferenceCategory> | |||
<PreferenceCategory | |||
@@ -90,7 +99,7 @@ | |||
android:persistent="true" | |||
android:title="设置定位距离" | |||
android:inputType="number" | |||
android:defaultValue="1" | |||
android:defaultValue="0" | |||
/> | |||
<EditTextPreference | |||
android:dialogTitle="每次定位次数" | |||
@@ -107,6 +116,14 @@ | |||
android:key="other" | |||
android:title="其他" | |||
> | |||
<SwitchPreference | |||
android:title="控制台输出到logcat" | |||
android:key="logcat_console_output" | |||
android:persistent="true" | |||
android:defaultValue="false" | |||
android:summary="控制台输出到logcat" | |||
/> | |||
<Preference | |||
android:key="RESET_SETTINGS" | |||
android:summary="重置所有设置为默认值" | |||