添加了位置信息函数

develop
CYZ 3 years ago
parent 102cb579e1
commit 306263e4c4

@ -0,0 +1,2 @@
K xml:S55948"1Implement permissions on this exported component.(ˆ©…»ùÿÿÿÿ

@ -0,0 +1,102 @@
c java:S112ž"FDefine and throw a dedicated exception instead of using a generic one.(ˆ¥ÉÎ8ÏŽ<C38F>˜¿0
w
java:S2293Œ"YReplace the type specification in this constructor call with the diamond operator ("<>").(艥ð8ÐŽ<C390>˜¿0
k
java:S1192Ò"NDefine a constant instead of duplicating this literal "if_create.txt" 3 times.(̬²8ÒŽ<C392>˜¿0
s java:S117§"QRename this local variable to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(”…ë<E280A6>ÿÿÿÿÿ8ÔŽ<C394>˜¿0
n java:S117â"QRename this local variable to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ä›áí8ÔŽ<C394>˜¿0
s java:S117ç"QRename this local variable to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ŽßÎþûÿÿÿÿ8ÕŽ<C395>˜¿0
s java:S117é"QRename this local variable to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ÀÇϯüÿÿÿÿ8ÕŽ<C395>˜¿0
s java:S117ô"QRename this local variable to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(¦°²¥øÿÿÿÿ8ÕŽ<C395>˜¿0
>
java:S1604Œ"(Make this anonymous inner class a lambda(—̺V
?
java:S1604Ñ"(Make this anonymous inner class a lambda(ά¯”
?
java:S1604È"(Make this anonymous inner class a lambda(¿Ü´ã
D
java:S1604ä"(Make this anonymous inner class a lambda(ˆÐï<C390>øÿÿÿÿ
F
java:S1604ì"(Make this anonymous inner class a lambda(øÄì‡8ÖŽ<C396>˜¿0
F
java:S1604Ù"(Make this anonymous inner class a lambda(Û±¼ 8ÖŽ<C396>˜¿0
?
java:S1604þ"(Make this anonymous inner class a lambda(ά¯”
K
java:S1604Ü"(Make this anonymous inner class a lambda(ˆÐï<C390>øÿÿÿÿ8׎<C397>˜¿0
F
java:S1604ä"(Make this anonymous inner class a lambda(øÄì‡8׎<C397>˜¿0
n
java:S1301¼"KReplace this "switch" statement by "if" statements to increase readability.(ד¾ñùÿÿÿÿ8ØŽ<C398>˜¿0
l
java:S2095Ÿ"NUse try-with-resources or close this "FileOutputStream" in a "finally" clause.(á©Úî<38><C2BE>˜¿0
U
java:S2589¡"7Remove this expression which always evaluates to "true"(åÄ…©<38><C2BE>˜¿0
o java:S116w"ZRename this field "if_first_create" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ݥ÷
t
java:S1450w"^Remove the "if_first_create" field and declare it as a local variable in the relevant methods.(ݥ÷
7
java:S1116e"Remove this empty statement.(ôŸŽìúÿÿÿÿ
a
java:S1124Ž"EReorder the modifiers to comply with the Java Language Specification.(¹úæµûÿÿÿÿ
[
java:S1124<18>"EReorder the modifiers to comply with the Java Language Specification.(ìѾk
n
java:S3776§"RRefactor this method to reduce its Cognitive Complexity from 17 to the 15 allowed.(áé–Þÿÿÿÿÿ
2
java:S3626¸"Remove this redundant jump.(ûÁÝ…
2
java:S3626¼"Remove this redundant jump.(ûÁÝ…
2
java:S3626Ð"Remove this redundant jump.(ûÁÝ…
N
java:S1135Â"2Complete the task associated to this TODO comment.(ÕÌ<C395>®þÿÿÿÿ
F
java:S2093¬"*Change this "try" to a try-with-resources.(¡»¢üùÿÿÿÿ
o
java:S1450ô"XRemove the "mMoveMenu" field and declare it as a local variable in the relevant methods.(ž¢—ò
n
java:S3252ñ"RUse static access with "android.widget.AbsListView" for "MultiChoiceModeListener".(¦Ûî„úÿÿÿÿ
N
java:S1135©"2Complete the task associated to this TODO comment.(» æžÿÿÿÿÿ
N
java:S1135®"2Complete the task associated to this TODO comment.(» æžÿÿÿÿÿ
M
java:S1874ê"1Remove this use of "getHeight"; it is deprecated.(·¡ªÃýÿÿÿÿ
8
java:S1116 "Remove this empty statement.(ôŸŽìúÿÿÿÿ
p
java:S3776á"RRefactor this method to reduce its Cognitive Complexity from 20 to the 15 allowed.(ãìîí<38><C3A1>˜¿0
F java:S108è")Either remove or fill this block of code.(žûÊ¥<38><C3A2>˜¿0
o
java:S3776Ñ"RRefactor this method to reduce its Cognitive Complexity from 17 to the 15 allowed.(ÅôÉ#8è<38><C3A8>˜¿0
N
java:S1135"2Complete the task associated to this TODO comment.(» æžÿÿÿÿÿ
e
java:S1126š"BReplace this if-then-else statement by a single method invocation.(玒¦ýÿÿÿÿ<38><C3AE>˜¿0
N
java:S1135¢"2Complete the task associated to this TODO comment.(» æžÿÿÿÿÿ
l
java:S1871»"IThis case's code block is the same as the block for the case on line 683.(øì´÷ûÿÿÿÿ<38><C3B0>˜¿0
p java:S100¦"NRename this method name to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(µñü‚øÿÿÿÿ<38><C3B6>˜¿0
F
java:S2093ª"*Change this "try" to a try-with-resources.(¡»¢üùÿÿÿÿ
k java:S100Â"NRename this method name to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(©¸˜Á8ÿ<38><C3BF>˜¿0
^ java:S125Ô"<This block of commented-out lines of code should be removed.(Óä§Çúÿÿÿÿ8<><38><EFBFBD>˜¿0
^ java:S125ƒ"<This block of commented-out lines of code should be removed.(Ó”©Öøÿÿÿÿ8„<38><E2809E>˜¿0
Y java:S125"<This block of commented-out lines of code should be removed.(¾è–á8„<38><E2809E>˜¿0
U
java:S1135"2Complete the task associated to this TODO comment.(» æžÿÿÿÿÿ8„<38><E2809E>˜¿0
U
java:S1135"2Complete the task associated to this TODO comment.(» æžÿÿÿÿÿ8…<38><E280A6>˜¿0
h
java:S3776Ÿ"RRefactor this method to reduce its Cognitive Complexity from 28 to the 15 allowed.(ôŒùb
N
java:S3398¡"0Move this method into "OnListItemClickListener".(‘ðð¡8‰<38><E280B0>˜¿0
K
java:S3398Ã"/Move this method into "BackgroundQueryHandler".(—÷õŽüÿÿÿÿ
C
java:S3398á"%Move this method into "ModeCallback".(ãìîí8‰<38><E280B0>˜¿0
A
java:S3398×"%Move this method into "ModeCallback".(“ðÉçýÿÿÿÿ

@ -10,4 +10,8 @@ i
l l
<app/src/main/java/net/micode/notes/ui/AlarmInitReceiver.java,0\2\0268ec648e2fc0139b30ed13396174b7392c1ae2 <app/src/main/java/net/micode/notes/ui/AlarmInitReceiver.java,0\2\0268ec648e2fc0139b30ed13396174b7392c1ae2
g g
7app/src/main/java/net/micode/notes/ui/NoteItemData.java,0\8\08c35f02f11c35ae9ebf8db0a482054dfa1cf493 7app/src/main/java/net/micode/notes/ui/NoteItemData.java,0\8\08c35f02f11c35ae9ebf8db0a482054dfa1cf493
l
<app/src/main/java/net/micode/notes/ui/NotesListActivity.java,a\d\ad72331a1bed265bb9c0fe838faa74dbf69fce32
P
app/src/main/AndroidManifest.xml,8\c\8c55c3ccc257e5907959013f99656e4c8ec3903e

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/../.." vcs="Git" />
</component>
</project>

@ -25,6 +25,8 @@
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" /> <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" /> <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />

@ -29,7 +29,13 @@ import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.graphics.Paint; import android.graphics.Paint;
import android.location.Address;
import android.location.Geocoder;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle; import android.os.Bundle;
import android.preference.PreferenceManager; import android.preference.PreferenceManager;
import android.text.Spannable; import android.text.Spannable;
@ -75,6 +81,8 @@ import java.io.IOException;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.List;
import java.util.Locale;
import java.util.Map; import java.util.Map;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
@ -82,6 +90,9 @@ import java.util.regex.Pattern;
public class NoteEditActivity extends Activity implements OnClickListener, public class NoteEditActivity extends Activity implements OnClickListener,
NoteSettingChangedListener, OnTextViewChangeListener { NoteSettingChangedListener, OnTextViewChangeListener {
public static final int LOCATION_CODE = 301;
private LocationManager locationManager;
private String locationProvider = null;
private class HeadViewHolder { private class HeadViewHolder {
public TextView tvModified; public TextView tvModified;
@ -972,4 +983,116 @@ public class NoteEditActivity extends Activity implements OnClickListener,
private void showToast(int resId, int duration) { private void showToast(int resId, int duration) {
Toast.makeText(this, resId, duration).show(); Toast.makeText(this, resId, duration).show();
} }
private void getLocation(){
//1.获取位置管理器
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
//2.获取位置提供器GPS或是NetWork
List<String> providers = locationManager.getProviders(true);
if (providers.contains(LocationManager.GPS_PROVIDER)) {
//如果是GPS
locationProvider = LocationManager.GPS_PROVIDER;
Log.v("TAG", "定位方式GPS");
} else if (providers.contains(LocationManager.NETWORK_PROVIDER)) {
//如果是Network
locationProvider = LocationManager.NETWORK_PROVIDER;
Log.v("TAG", "定位方式Network");
}else {
Toast.makeText(this, "没有可用的位置提供器", Toast.LENGTH_SHORT).show();
return;
}
Location location = locationManager.getLastKnownLocation(locationProvider);
if (location!=null){
Toast.makeText(this, location.getLongitude() + " " +
location.getLatitude() + "", Toast.LENGTH_SHORT).show();
Log.v("TAG", "获取上次的位置-经纬度:"+location.getLongitude()+" "+location.getLatitude());
getAddress(location);
}else{
//监视地理位置变化第二个和第三个参数分别为更新的最短时间minTime和最短距离minDistace
locationManager.requestLocationUpdates(locationProvider, 3000, 1,locationListener);
}
}
public LocationListener locationListener = new LocationListener() {
// Provider的状态在可用、暂时不可用和无服务三个状态直接切换时触发此函数
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
// Provider被enable时触发此函数比如GPS被打开
@Override
public void onProviderEnabled(String provider) {
}
// Provider被disable时触发此函数比如GPS被关闭
@Override
public void onProviderDisabled(String provider) {
}
//当坐标改变时触发此函数如果Provider传进相同的坐标它就不会被触发
@Override
public void onLocationChanged(Location location) {
if (location != null) {
//如果位置发生变化,重新显示地理位置经纬度
Toast.makeText(NoteEditActivity.this, location.getLongitude() + " " +
location.getLatitude() + "", Toast.LENGTH_SHORT).show();
Log.v("TAG", "监视地理位置变化-经纬度:"+location.getLongitude()+" "+location.getLatitude());
}
}
};
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
switch (requestCode) {
case LOCATION_CODE:
if(grantResults.length > 0 && grantResults[0] == getPackageManager().PERMISSION_GRANTED
&& grantResults[1] == PackageManager.PERMISSION_GRANTED) {
Toast.makeText(this, "申请权限", Toast.LENGTH_LONG).show();
try {
List<String> providers = locationManager.getProviders(true);
if (providers.contains(LocationManager.NETWORK_PROVIDER)) {
//如果是Network
locationProvider = LocationManager.NETWORK_PROVIDER;
}else if (providers.contains(LocationManager.GPS_PROVIDER)) {
//如果是GPS
locationProvider = LocationManager.GPS_PROVIDER;
}
Location location = locationManager.getLastKnownLocation(locationProvider);
if (location!=null){
Toast.makeText(this, location.getLongitude() + " " +
location.getLatitude() + "", Toast.LENGTH_SHORT).show();
Log.v("TAG", "获取上次的位置-经纬度:"+location.getLongitude()+" "+location.getLatitude());
}else{
// 监视地理位置变化第二个和第三个参数分别为更新的最短时间minTime和最短距离minDistace
locationManager.requestLocationUpdates(locationProvider, 0, 0,locationListener);
}
}catch (SecurityException e){
e.printStackTrace();
}
} else {
Toast.makeText(this, "缺少权限", Toast.LENGTH_LONG).show();
finish();
}
break;
}
}
//获取地址信息:城市、街道等信息
private List<Address> getAddress(Location location) {
List<Address> result = null;
try {
if (location != null) {
Geocoder gc = new Geocoder(this, Locale.getDefault());
result = gc.getFromLocation(location.getLatitude(), location.getLongitude(), 1);
Toast.makeText(this, "获取地址信息:"+result.toString(), Toast.LENGTH_LONG).show();
Log.v("TAG", "获取地址信息:"+result.toString());
}
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
} }

Loading…
Cancel
Save