Skip to content

Commit aa156b7

Browse files
authored
Merge pull request didi#1040 from didi/feature/android12-reanlone-202200601
Feature/android12 reanlone 202200601
2 parents 27f3ec7 + 6a32df9 commit aa156b7

File tree

11 files changed

+63
-31
lines changed

11 files changed

+63
-31
lines changed

Android/app/src/main/AndroidManifest.xml

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@
3535

3636
<activity
3737
android:name=".MainDoKitActivity"
38-
android:theme="@style/NoTitleTheme">
38+
android:theme="@style/NoTitleTheme"
39+
android:exported="true">
3940
<intent-filter>
4041
<action android:name="android.intent.action.MAIN" />
4142

@@ -76,13 +77,8 @@
7677
android:name="com.baidu.location.f"
7778
android:enabled="true"
7879
android:process=":remote" />
79-
<!-- Dokit targetApi为 29 Android Q时截屏的前台服务 -->
80-
<service
81-
android:name="com.didichuxing.doraemonkit.kit.colorpick.ScreenRecorderService"
82-
android:enabled="true"
83-
android:foregroundServiceType="mediaProjection"
84-
tools:targetApi="q" />
8580

81+
<!-- Dokit targetApi为 29 Android Q时截屏的前台服务 -->
8682
<service
8783
android:name=".test.ScreenRecordingService"
8884
android:enabled="true"

Android/config.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,14 @@ ext {
1313
//是否使用本地仓库,需要使用绝对路径,仓库地址在 local.properties 中添加 LOCAL_REPOSITORY_URL
1414
use_local : true,
1515
group_id : 'io.github.didi.dokit',
16-
version : '3.7.1'
16+
version : '3.7.2'
1717
]
1818

1919
android = [compileSdkVersion : 29,
2020
applicationId : "com.didichuxing.doraemondemo",
2121
minSdkVersion_16 : 16,
2222
minSdkVersion_21 : 21,
23-
targetSdkVersion : 30,
23+
targetSdkVersion : 31,
2424
//app版本号
2525
versionCode : 1,
2626
versionName : "1.0.0",
@@ -31,7 +31,7 @@ ext {
3131
kotlinx_coroutines_version_v13: "1.3.7",
3232
kotlinx_coroutines_version_v14: "1.4.3",
3333
booster_version : "4.0.0",
34-
agp_module_verson : "4.2.2",
34+
agp_module_verson : "7.0.0",
3535
agp_plugin_verson : "4.2.2",
3636
ktor : "1.5.4",
3737
okhttp_v2 : "2.7.5",

Android/dokit-leakcanary/src/main/java/com/squareup/leakcanary/internal/DisplayLeakActivity.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@
6767
import static android.view.View.GONE;
6868
import static android.view.View.VISIBLE;
6969
import static com.squareup.leakcanary.BuildConfig.LEAKCANARY_LIBRARY_VERSION;
70+
import android.os.Build;
7071

7172
@SuppressWarnings("ConstantConditions")
7273
public final class DisplayLeakActivity extends Activity {
@@ -84,7 +85,11 @@ public static PendingIntent createPendingIntent(Context context, String referenc
8485
Intent intent = new Intent(context, DisplayLeakActivity.class);
8586
intent.putExtra(SHOW_LEAK_EXTRA, referenceKey);
8687
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
87-
return PendingIntent.getActivity(context, 1, intent, FLAG_UPDATE_CURRENT);
88+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
89+
return PendingIntent.getActivity(context, 1, intent, FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE);
90+
}else{
91+
return PendingIntent.getActivity(context, 1, intent, FLAG_UPDATE_CURRENT);
92+
}
8893
}
8994

9095
// null until it's been first loaded.

Android/dokit-leakcanary/src/main/java/com/squareup/leakcanary/internal/RequestStoragePermissionActivity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public static PendingIntent createPendingIntent(Context context) {
4141
setEnabledBlocking(context, RequestStoragePermissionActivity.class, true);
4242
Intent intent = new Intent(context, RequestStoragePermissionActivity.class);
4343
intent.setFlags(FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_CLEAR_TOP);
44-
return PendingIntent.getActivity(context, 1, intent, FLAG_UPDATE_CURRENT);
44+
return PendingIntent.getActivity(context, 1, intent, FLAG_UPDATE_CURRENT | FLAG_IMMUTABLE);
4545
}
4646

4747
@Override

Android/dokit-mc/src/main/AndroidManifest.xml

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,19 +12,19 @@
1212
android:name="com.didichuxing.doraemonkit.kit.mc.ui.DoKitMcScanActivity"
1313
android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
1414

15-
<!-- <service-->
16-
<!-- android:name="com.didichuxing.doraemonkit.kit.mc.server.DoKitAccessibilityService"-->
17-
<!-- android:enabled="true"-->
18-
<!-- android:label="DoKit一机多控"-->
19-
<!-- android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">-->
20-
<!-- <intent-filter>-->
21-
<!-- <action android:name="android.accessibilityservice.AccessibilityService" />-->
22-
<!-- </intent-filter>-->
15+
<!-- <service-->
16+
<!-- android:name="com.didichuxing.doraemonkit.kit.mc.server.DoKitAccessibilityService"-->
17+
<!-- android:enabled="true"-->
18+
<!-- android:label="DoKit一机多控"-->
19+
<!-- android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">-->
20+
<!-- <intent-filter>-->
21+
<!-- <action android:name="android.accessibilityservice.AccessibilityService" />-->
22+
<!-- </intent-filter>-->
2323

24-
<!-- <meta-data-->
25-
<!-- android:name="android.accessibilityservice"-->
26-
<!-- android:resource="@xml/mc_accessibity_config" />-->
27-
<!-- </service>-->
24+
<!-- <meta-data-->
25+
<!-- android:name="android.accessibilityservice"-->
26+
<!-- android:resource="@xml/mc_accessibity_config" />-->
27+
<!-- </service>-->
2828
</application>
2929

3030
</manifest>

Android/dokit-util/src/main/java/com/didichuxing/doraemonkit/util/DangerousUtils.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -337,7 +337,12 @@ public static boolean setMobileDataEnabled(final boolean enabled) {
337337
@RequiresPermission(SEND_SMS)
338338
public static void sendSmsSilent(final String phoneNumber, final String content) {
339339
if (TextUtils.isEmpty(content)) return;
340-
PendingIntent sentIntent = PendingIntent.getBroadcast(Utils.getApp(), 0, new Intent("send"), 0);
340+
PendingIntent sentIntent;
341+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
342+
sentIntent = PendingIntent.getBroadcast(Utils.getApp(), 0, new Intent("send"), 0 | PendingIntent.FLAG_IMMUTABLE);
343+
} else {
344+
sentIntent = PendingIntent.getBroadcast(Utils.getApp(), 0, new Intent("send"), 0);
345+
}
341346
SmsManager smsManager = SmsManager.getDefault();
342347
if (content.length() >= 70) {
343348
List<String> ms = smsManager.divideMessage(content);

Android/dokit/src/main/AndroidManifest.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,12 @@
6464
android:resource="@xml/dokit_debug_provider_paths" />
6565
</provider>
6666

67+
<!-- Dokit targetApi为 29 Android Q时截屏的前台服务 -->
68+
<service
69+
android:name="com.didichuxing.doraemonkit.kit.colorpick.ScreenRecorderService"
70+
android:enabled="true"
71+
android:foregroundServiceType="mediaProjection" />
72+
6773
<!--<service-->
6874
<!--android:name=".kit.viewcheck.DebugAccessibilityService"-->
6975
<!--android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">-->

Android/dokit/src/main/java/com/didichuxing/doraemonkit/kit/blockmonitor/core/BlockMonitorManager.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import android.app.PendingIntent;
66
import android.content.Context;
77
import android.content.Intent;
8+
import android.os.Build;
89
import android.os.Debug;
910
import android.os.Looper;
1011
import android.text.TextUtils;
@@ -151,7 +152,12 @@ private void showNotification(BlockInfo info) {
151152
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
152153
intent.putExtra(BundleKey.FRAGMENT_INDEX, FragmentIndex.FRAGMENT_BLOCK_MONITOR);
153154
intent.putExtra(BlockMonitorFragment.KEY_JUMP_TO_LIST, true);
154-
PendingIntent pendingIntent = PendingIntent.getActivity(mContext, 1, intent, FLAG_UPDATE_CURRENT);
155+
PendingIntent pendingIntent;
156+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
157+
pendingIntent = PendingIntent.getActivity(mContext, 1, intent, FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE);
158+
} else {
159+
pendingIntent = PendingIntent.getActivity(mContext, 1, intent, FLAG_UPDATE_CURRENT);
160+
}
155161
DoKitNotificationUtils.setInfoNotification(mContext, DoKitNotificationUtils.ID_SHOW_BLOCK_NOTIFICATION,
156162
contentTitle, contentText, contentText, pendingIntent);
157163
}

Android/dokit/src/main/java/com/didichuxing/doraemonkit/kit/colorpick/ScreenRecorderService.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,14 @@ public int onStartCommand(Intent intent, int flags, int startId) {
5252
private void createNotificationChannel() {
5353
Notification.Builder builder = new Notification.Builder(this.getApplicationContext()); //获取一个Notification构造器
5454
Intent nfIntent = new Intent(this, UniversalActivity.class); //点击后跳转的界面,可以设置跳转数据
55+
PendingIntent pendingIntent;
56+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
57+
pendingIntent = PendingIntent.getActivity(this, 0, nfIntent, 0 | PendingIntent.FLAG_IMMUTABLE);
58+
} else {
59+
pendingIntent = PendingIntent.getActivity(this, 0, nfIntent, 0);
60+
}
5561

56-
builder.setContentIntent(PendingIntent.getActivity(this, 0, nfIntent, 0)) // 设置PendingIntent
62+
builder.setContentIntent(pendingIntent) // 设置PendingIntent
5763
.setLargeIcon(BitmapFactory.decodeResource(this.getResources(), R.mipmap.dk_doraemon)) // 设置下拉列表中的图标(大图标)
5864
//.setContentTitle("SMI InstantView") // 设置下拉列表里的标题
5965
.setSmallIcon(R.mipmap.dk_doraemon) // 设置状态栏内的小图标

Android/dokit/src/main/java/com/didichuxing/doraemonkit/kit/core/NormalDoKitViewManager.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -326,7 +326,7 @@ internal class NormalDoKitViewManager : AbsDoKitViewManager() {
326326
//操作DecorRootView
327327
doKitView.dealDecorRootView(getDoKitRootContentView(doKitIntent.activity))
328328
}, MC_DELAY.toLong())
329-
329+
// DoKitViewManager.INSTANCE.notifyDokitViewAdd(doKitView)
330330
}
331331
currentActivityDoKitViews[doKitView.tag] = doKitView
332332
} catch (e: Exception) {

Android/dokit/src/main/java/com/didichuxing/doraemonkit/util/DoKitNotificationUtils.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ public static void setMessageNotification(Context context, int notifyId, int sma
8484
if (pendingIntent != null) {
8585
builder.setContentIntent(pendingIntent);
8686
} else {
87-
builder.setContentIntent(PendingIntent.getBroadcast(context, 0, new Intent(), PendingIntent.FLAG_UPDATE_CURRENT));
87+
builder.setContentIntent(createPendingIntent(context));
8888
}
8989
NotificationManager manager = createNotificationManager(context);
9090
manager.notify(notifyId, builder.build());
@@ -117,7 +117,7 @@ public static void setInfoNotification(Context context, int notifyId, CharSequen
117117
if (pendingIntent != null) {
118118
builder.setContentIntent(pendingIntent);
119119
} else {
120-
builder.setContentIntent(PendingIntent.getBroadcast(context, 0, new Intent(), PendingIntent.FLAG_UPDATE_CURRENT));
120+
builder.setContentIntent(createPendingIntent(context));
121121
}
122122
NotificationManager manager = createNotificationManager(context);
123123
manager.notify(notifyId, builder.build());
@@ -171,7 +171,7 @@ public static void setProgressNotification(Context context, int notifyId, CharSe
171171
if (pendingIntent != null) {
172172
builder.setContentIntent(pendingIntent);
173173
} else {
174-
builder.setContentIntent(PendingIntent.getBroadcast(context, 0, new Intent(), PendingIntent.FLAG_UPDATE_CURRENT));
174+
builder.setContentIntent(createPendingIntent(context));
175175
}
176176
if (!TextUtils.isEmpty(ticker)) {
177177
builder.setTicker(ticker);
@@ -215,4 +215,12 @@ private static NotificationManager createNotificationManager(Context context) {
215215
}
216216
return sNotificationManager;
217217
}
218+
219+
private static PendingIntent createPendingIntent(Context context) {
220+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
221+
return PendingIntent.getBroadcast(context, 0, new Intent(), PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE);
222+
} else {
223+
return PendingIntent.getBroadcast(context, 0, new Intent(), PendingIntent.FLAG_UPDATE_CURRENT);
224+
}
225+
}
218226
}

0 commit comments

Comments
 (0)