全アプリケーションのアクティビティ一覧を取得する方法はググると出てきますが、
自分のアプリケーションのアクティビティを取得する方法は見つからなかったので、
実装してみました。
実装方法
private String getMainActivityName(){
ActivityInfo[] activities = null;
PackageManager pm = getPackageManager();
try {
//当アプリの全アクティビティを取得
PackageInfo packageInfo = pm.getPackageInfo(getPackageName(), PackageManager.GET_ACTIVITIES);
activities = packageInfo.activities;
} catch (NameNotFoundException e) {
e.printStackTrace();
}
if(activities.length < 1) return null;
//端末の全アプリのACTION_MAINで起動できる全アクティビティを取得
Intent intent = new Intent(Intent.ACTION_MAIN, null);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> resolveInfo = pm.queryIntentActivities(intent, PackageManager.GET_RESOLVED_FILTER);
//全メインアクティビティ内から当アプリのメインアクティビティを探す
for(int i = 0; i < resolveInfo.size(); i++) {
String activityName = resolveInfo.get(i).activityInfo.name;
for(int j = 0; j < activities.length; j++){
String name = activities[j].name;
if(activityName.equals(name)) return name;
}
}
return null;
}
中途半端な状態だったのに、ストックしてくれている方がいたので、取り急ぎコード掲載