Skip to content

Commit 921cb9f

Browse files
committed
see 05/11 log
1 parent a1e9d83 commit 921cb9f

File tree

8 files changed

+57
-11
lines changed

8 files changed

+57
-11
lines changed

app/build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ dependencies {
5656
// LeakCanary
5757
debugImplementation "com.squareup.leakcanary:leakcanary-android:$leakcanary_version"
5858
releaseImplementation "com.squareup.leakcanary:leakcanary-android-no-op:$leakcanary_version"
59-
// implementation 'com.blankj:utilcode:1.14.4'
59+
// implementation 'com.blankj:utilcode:1.15.0'
6060
}
6161

6262

app/src/main/java/com/blankj/androidutilcode/feature/core/phone/PhoneActivity.java

+2
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ public void onWidgetClick(View view) {
103103
break;
104104
case R.id.btn_call:
105105
PermissionHelper.requestPhone(new PermissionHelper.OnPermissionGrantedListener() {
106+
@SuppressLint("MissingPermission")
106107
@Override
107108
public void onPermissionGranted() {
108109
PhoneUtils.call("10000");
@@ -114,6 +115,7 @@ public void onPermissionGranted() {
114115
break;
115116
case R.id.btn_send_sms_silent:
116117
PermissionHelper.requestSms(new PermissionHelper.OnPermissionGrantedListener() {
118+
@SuppressLint("MissingPermission")
117119
@Override
118120
public void onPermissionGranted() {
119121
PhoneUtils.sendSmsSilent("10000", "sendSmsSilent");

build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ buildscript {
66
}
77
dependencies {
88
classpath 'com.android.tools.build:gradle:3.1.2'
9-
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'
9+
classpath 'com.github.dcendents:android-maven-gradle-plugin:2.0'
1010
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.0'
1111

1212
classpath "tech.harmonysoft:traute-gradle:1.1.8"

subutil/src/main/java/com/blankj/subutil/util/LocationUtils.java

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package com.blankj.subutil.util;
22

3-
import android.Manifest;
4-
import android.annotation.SuppressLint;
53
import android.content.Context;
64
import android.content.Intent;
75
import android.location.Address;
@@ -20,6 +18,9 @@
2018
import java.util.List;
2119
import java.util.Locale;
2220

21+
import static android.Manifest.permission.ACCESS_COARSE_LOCATION;
22+
import static android.Manifest.permission.ACCESS_FINE_LOCATION;
23+
2324
/**
2425
* <pre>
2526
* author: Blankj
@@ -152,7 +153,7 @@ public static void openGpsSettings() {
152153
* @param listener 位置刷新的回调接口
153154
* @return {@code true}: 初始化成功<br>{@code false}: 初始化失败
154155
*/
155-
@RequiresPermission(Manifest.permission.ACCESS_FINE_LOCATION)
156+
@RequiresPermission(ACCESS_FINE_LOCATION)
156157
public static boolean register(long minTime, long minDistance, OnLocationChangeListener listener) {
157158
if (listener == null) return false;
158159
mLocationManager = (LocationManager) Utils.getApp().getSystemService(Context.LOCATION_SERVICE);
@@ -174,7 +175,7 @@ public static boolean register(long minTime, long minDistance, OnLocationChangeL
174175
/**
175176
* 注销
176177
*/
177-
@SuppressLint("MissingPermission")
178+
@RequiresPermission(ACCESS_COARSE_LOCATION)
178179
public static void unregister() {
179180
if (mLocationManager != null) {
180181
if (myLocationListener != null) {

subutil/src/main/java/com/blankj/subutil/util/Utils.java

+21
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
import android.content.Context;
66
import android.support.annotation.NonNull;
77

8+
import java.lang.reflect.InvocationTargetException;
9+
810
/**
911
* <pre>
1012
* author:
@@ -60,6 +62,25 @@ public static void init(@NonNull final Application app) {
6062
*/
6163
public static Application getApp() {
6264
if (sApplication != null) return sApplication;
65+
try {
66+
@SuppressLint("PrivateApi")
67+
Class<?> activityThread = Class.forName("android.app.activityThread");
68+
Object at = activityThread.getMethod("currentActivityThread").invoke(null);
69+
Object app = activityThread.getMethod("getApplication").invoke(at);
70+
if (app == null) {
71+
throw new NullPointerException("u should init first");
72+
}
73+
init((Application) app);
74+
return sApplication;
75+
} catch (NoSuchMethodException e) {
76+
e.printStackTrace();
77+
} catch (IllegalAccessException e) {
78+
e.printStackTrace();
79+
} catch (InvocationTargetException e) {
80+
e.printStackTrace();
81+
} catch (ClassNotFoundException e) {
82+
e.printStackTrace();
83+
}
6384
throw new NullPointerException("u should init first");
6485
}
6586
}

utilcode/src/main/java/com/blankj/utilcode/util/NetworkUtils.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121

2222
import static android.Manifest.permission.ACCESS_NETWORK_STATE;
2323
import static android.Manifest.permission.ACCESS_WIFI_STATE;
24+
import static android.Manifest.permission.CHANGE_WIFI_STATE;
2425
import static android.Manifest.permission.INTERNET;
2526
import static android.Manifest.permission.MODIFY_PHONE_STATE;
2627

@@ -200,7 +201,7 @@ public static boolean getWifiEnabled() {
200201
*
201202
* @param enabled True to enabled, false otherwise.
202203
*/
203-
@SuppressLint("MissingPermission")
204+
@RequiresPermission(CHANGE_WIFI_STATE)
204205
public static void setWifiEnabled(final boolean enabled) {
205206
@SuppressLint("WifiManagerLeak")
206207
WifiManager manager = (WifiManager) Utils.getApp().getSystemService(Context.WIFI_SERVICE);
@@ -223,7 +224,7 @@ public static void setWifiEnabled(final boolean enabled) {
223224
*
224225
* @return {@code true}: connected<br>{@code false}: disconnected
225226
*/
226-
@SuppressLint("MissingPermission")
227+
@RequiresPermission(ACCESS_NETWORK_STATE)
227228
public static boolean isWifiConnected() {
228229
ConnectivityManager cm =
229230
(ConnectivityManager) Utils.getApp().getSystemService(Context.CONNECTIVITY_SERVICE);

utilcode/src/main/java/com/blankj/utilcode/util/ResourceUtils.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
* author: Blankj
2121
* blog : http://blankj.com
2222
* time : 2018/05/07
23-
* desc :
23+
* desc : utils about resource
2424
* </pre>
2525
*/
2626
public final class ResourceUtils {

utilcode/src/main/java/com/blankj/utilcode/util/Utils.java

+23-2
Original file line numberDiff line numberDiff line change
@@ -99,8 +99,10 @@ public static void init(@NonNull final Context context) {
9999
* @param app application
100100
*/
101101
public static void init(@NonNull final Application app) {
102-
Utils.sApplication = app;
103-
Utils.sApplication.registerActivityLifecycleCallbacks(mCallbacks);
102+
if (sApplication == null) {
103+
Utils.sApplication = app;
104+
Utils.sApplication.registerActivityLifecycleCallbacks(mCallbacks);
105+
}
104106
}
105107

106108
/**
@@ -110,6 +112,25 @@ public static void init(@NonNull final Application app) {
110112
*/
111113
public static Application getApp() {
112114
if (sApplication != null) return sApplication;
115+
try {
116+
@SuppressLint("PrivateApi")
117+
Class<?> activityThread = Class.forName("android.app.ActivityThread");
118+
Object at = activityThread.getMethod("currentActivityThread").invoke(null);
119+
Object app = activityThread.getMethod("getApplication").invoke(at);
120+
if (app == null) {
121+
throw new NullPointerException("u should init first");
122+
}
123+
init((Application) app);
124+
return sApplication;
125+
} catch (NoSuchMethodException e) {
126+
e.printStackTrace();
127+
} catch (IllegalAccessException e) {
128+
e.printStackTrace();
129+
} catch (InvocationTargetException e) {
130+
e.printStackTrace();
131+
} catch (ClassNotFoundException e) {
132+
e.printStackTrace();
133+
}
113134
throw new NullPointerException("u should init first");
114135
}
115136

0 commit comments

Comments
 (0)