Skip to content

Commit 6e27c6e

Browse files
committed
see 08/09 log
1 parent 0edc62e commit 6e27c6e

File tree

6 files changed

+104
-17
lines changed

6 files changed

+104
-17
lines changed

buildApp.gradle

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,18 +22,20 @@ android {
2222
applicationId Config.applicationId + suffix
2323
targetSdkVersion Config.targetSdkVersion
2424
multiDexEnabled true
25-
resValue "string", "app_name", Config.appName + suffix
2625
}
2726

2827
buildTypes {
2928
debug {
3029
minifyEnabled false
3130
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
3231
applicationIdSuffix ".debug"
32+
resValue "string", "app_name", Config.appName + suffix + ".debug"
3333
}
34+
3435
release {
3536
minifyEnabled true
3637
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
38+
resValue "string", "app_name", Config.appName + suffix
3739
}
3840
}
3941

@@ -64,9 +66,7 @@ dependencies {
6466
api entrySet.value.dep
6567
}
6668

67-
// 如果 Config.pkgConfig 不为空,说明可能导入了部分 pkg,
68-
// 那么可能有些 api 没有实现,需要导入 mock 层的 api
69-
if (!Config.pkgConfig.isEmpty()) {
69+
if (Config.depConfig.feature.mock.isApply) {
7070
api Config.depConfig.feature.mock.dep
7171
}
7272
}

feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/activity/ActivityActivity.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,13 +81,15 @@ class ActivityActivity : CommonTitleActivity() {
8181
activityActIntentsAnimBtn,
8282
activityActClzSharedElementBtn,
8383
activityStartHomeActivityBtn,
84+
activityStartLauncherActivityBtn,
8485
activityFinishActivityBtn,
8586
activityFinishToActivityBtn,
8687
activityFinishAllActivitiesBtn
8788
)
8889
SpanUtils.with(activityAboutTv)
8990
.appendLine("isActivityExists: " + ActivityUtils.isActivityExists(AppUtils.getAppPackageName(), SubActivityActivity::class.java.name))
9091
.appendLine("getLauncherActivity: " + ActivityUtils.getLauncherActivity(AppUtils.getAppPackageName()))
92+
.appendLine("getMainActivities: " + ActivityUtils.getMainActivities())
9193
.appendLine("getTopActivity: " + ActivityUtils.getTopActivity())
9294
.appendLine("isActivityExistsInStack: " + ActivityUtils.isActivityExistsInStack(CoreUtilActivity::class.java))
9395
.append("getActivityIcon: ")
@@ -161,6 +163,7 @@ class ActivityActivity : CommonTitleActivity() {
161163
R.id.activityActIntentsAnimBtn -> ActivityUtils.startActivities(this, intents,
162164
R.anim.fade_in_1000, R.anim.fade_out_1000)
163165
R.id.activityStartHomeActivityBtn -> ActivityUtils.startHomeActivity()
166+
R.id.activityStartLauncherActivityBtn -> ActivityUtils.startLauncherActivity()
164167
R.id.activityFinishActivityBtn -> ActivityUtils.finishActivity(CoreUtilActivity::class.java)
165168
R.id.activityFinishToActivityBtn -> ActivityUtils.finishToActivity(CoreUtilActivity::class.java, false, true)
166169
R.id.activityFinishAllActivitiesBtn -> ActivityUtils.finishAllActivities()

feature/utilcode/pkg/src/main/res/layout/activity_activity.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,13 @@
194194
android:layout_height="wrap_content"
195195
android:text="@string/activity_start_home_activity" />
196196

197+
<Button
198+
android:id="@+id/activityStartLauncherActivityBtn"
199+
style="@style/WideBtnStyle"
200+
android:layout_width="match_parent"
201+
android:layout_height="wrap_content"
202+
android:text="@string/activity_start_launcher_activity" />
203+
197204
<Button
198205
android:id="@+id/activityFinishActivityBtn"
199206
style="@style/WideBtnStyle"

feature/utilcode/pkg/src/main/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@
6464
<string name="activity_act_intents_anim">Act Intents Anim</string>
6565
<string name="activity_start_activities">Start Activities</string>
6666
<string name="activity_start_home_activity">Start Home Activity</string>
67+
<string name="activity_start_launcher_activity">Start Launcher Activity</string>
6768
<string name="activity_finish_activity">Finish MainActivity</string>
6869
<string name="activity_finish_to_activity">Finish To MainActivity</string>
6970
<string name="activity_finish_all_activities">Finish All Activities</string>

lib/utilcode/src/main/java/com/blankj/utilcode/util/ActivityUtils.java

Lines changed: 45 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,11 @@
1515
import android.support.annotation.Nullable;
1616
import android.support.v4.app.ActivityOptionsCompat;
1717
import android.support.v4.util.Pair;
18+
import android.text.TextUtils;
1819
import android.util.Log;
1920
import android.view.View;
2021

22+
import java.util.ArrayList;
2123
import java.util.List;
2224

2325
/**
@@ -1054,7 +1056,9 @@ public static void startLauncherActivity() {
10541056
* @param pkg The name of the package.
10551057
*/
10561058
public static void startLauncherActivity(@NonNull final String pkg) {
1057-
startActivity(pkg, getLauncherActivity(pkg));
1059+
String launcherActivity = getLauncherActivity(pkg);
1060+
if (TextUtils.isEmpty(launcherActivity)) return;
1061+
startActivity(pkg, launcherActivity);
10581062
}
10591063

10601064
/**
@@ -1087,11 +1091,47 @@ public static String getLauncherActivity(@NonNull final String pkg) {
10871091
intent.setPackage(pkg);
10881092
PackageManager pm = Utils.getApp().getPackageManager();
10891093
List<ResolveInfo> info = pm.queryIntentActivities(intent, 0);
1090-
ResolveInfo next = info.iterator().next();
1091-
if (next != null) {
1092-
return next.activityInfo.name;
1094+
int size = info.size();
1095+
if (size == 0) return "";
1096+
for (int i = 0; i < size; i++) {
1097+
ResolveInfo ri = info.get(i);
1098+
if (ri.activityInfo.processName.equals(pkg)) {
1099+
return ri.activityInfo.name;
1100+
}
1101+
}
1102+
return info.get(0).activityInfo.name;
1103+
}
1104+
1105+
/**
1106+
* Return the list of main activities.
1107+
*
1108+
* @return the list of main activities
1109+
*/
1110+
public static List<String> getMainActivities() {
1111+
return getMainActivities(Utils.getApp().getPackageName());
1112+
}
1113+
1114+
/**
1115+
* Return the list of main activities.
1116+
*
1117+
* @param pkg The name of the package.
1118+
* @return the list of main activities
1119+
*/
1120+
public static List<String> getMainActivities(@NonNull final String pkg) {
1121+
List<String> ret = new ArrayList<>();
1122+
Intent intent = new Intent(Intent.ACTION_MAIN, null);
1123+
intent.setPackage(pkg);
1124+
PackageManager pm = Utils.getApp().getPackageManager();
1125+
List<ResolveInfo> info = pm.queryIntentActivities(intent, 0);
1126+
int size = info.size();
1127+
if (size == 0) return ret;
1128+
for (int i = 0; i < size; i++) {
1129+
ResolveInfo ri = info.get(i);
1130+
if (ri.activityInfo.processName.equals(pkg)) {
1131+
ret.add(ri.activityInfo.name);
1132+
}
10931133
}
1094-
return "no launcher activity of " + pkg;
1134+
return ret;
10951135
}
10961136

10971137
/**

lib/utilcode/src/main/java/com/blankj/utilcode/util/AppUtils.java

Lines changed: 44 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import android.app.AppOpsManager;
77
import android.app.usage.UsageStats;
88
import android.app.usage.UsageStatsManager;
9+
import android.content.ComponentName;
910
import android.content.Context;
1011
import android.content.Intent;
1112
import android.content.pm.ApplicationInfo;
@@ -293,7 +294,12 @@ public static boolean isAppRunning(@NonNull final String pkgName) {
293294
*/
294295
public static void launchApp(final String packageName) {
295296
if (isSpace(packageName)) return;
296-
Utils.getApp().startActivity(getLaunchAppIntent(packageName, true));
297+
Intent launchAppIntent = getLaunchAppIntent(packageName, true);
298+
if (launchAppIntent == null) {
299+
Log.e("AppUtils", "Didn't exist launcher activity.");
300+
return;
301+
}
302+
Utils.getApp().startActivity(launchAppIntent);
297303
}
298304

299305
/**
@@ -308,7 +314,12 @@ public static void launchApp(final Activity activity,
308314
final String packageName,
309315
final int requestCode) {
310316
if (isSpace(packageName)) return;
311-
activity.startActivityForResult(getLaunchAppIntent(packageName), requestCode);
317+
Intent launchAppIntent = getLaunchAppIntent(packageName);
318+
if (launchAppIntent == null) {
319+
Log.e("AppUtils", "Didn't exist launcher activity.");
320+
return;
321+
}
322+
activity.startActivityForResult(launchAppIntent, requestCode);
312323
}
313324

314325
/**
@@ -324,9 +335,11 @@ public static void relaunchApp() {
324335
* @param isKillProcess True to kill the process, false otherwise.
325336
*/
326337
public static void relaunchApp(final boolean isKillProcess) {
327-
PackageManager packageManager = Utils.getApp().getPackageManager();
328-
Intent intent = packageManager.getLaunchIntentForPackage(Utils.getApp().getPackageName());
329-
if (intent == null) return;
338+
Intent intent = getLaunchAppIntent(Utils.getApp().getPackageName(), true);
339+
if (intent == null) {
340+
Log.e("AppUtils", "Didn't exist launcher activity.");
341+
return;
342+
}
330343
intent.addFlags(
331344
Intent.FLAG_ACTIVITY_NEW_TASK
332345
| Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK
@@ -914,9 +927,32 @@ private static Intent getLaunchAppIntent(final String packageName) {
914927
}
915928

916929
private static Intent getLaunchAppIntent(final String packageName, final boolean isNewTask) {
917-
Intent intent = Utils.getApp().getPackageManager().getLaunchIntentForPackage(packageName);
918-
if (intent == null) return null;
919-
return isNewTask ? intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) : intent;
930+
String launcherActivity = getLauncherActivity(packageName);
931+
if (!launcherActivity.isEmpty()) {
932+
Intent intent = new Intent(Intent.ACTION_MAIN);
933+
intent.addCategory(Intent.CATEGORY_LAUNCHER);
934+
ComponentName cn = new ComponentName(packageName, launcherActivity);
935+
intent.setComponent(cn);
936+
return isNewTask ? intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) : intent;
937+
}
938+
return null;
939+
}
940+
941+
private static String getLauncherActivity(@NonNull final String pkg) {
942+
Intent intent = new Intent(Intent.ACTION_MAIN, null);
943+
intent.addCategory(Intent.CATEGORY_LAUNCHER);
944+
intent.setPackage(pkg);
945+
PackageManager pm = Utils.getApp().getPackageManager();
946+
List<ResolveInfo> info = pm.queryIntentActivities(intent, 0);
947+
int size = info.size();
948+
if (size == 0) return "";
949+
for (int i = 0; i < size; i++) {
950+
ResolveInfo ri = info.get(i);
951+
if (ri.activityInfo.processName.equals(pkg)) {
952+
return ri.activityInfo.name;
953+
}
954+
}
955+
return info.get(0).activityInfo.name;
920956
}
921957

922958
private static String getForegroundProcessName() {

0 commit comments

Comments
 (0)