dev/aos
[AOS] PackageInfo #move other app
donguran
2024. 2. 8. 13:40
728x90
반응형
안드로이드 11(API 30)부터 앱의 패키지 공개 상태를 지정해주어야 접근이 가능하다.
try {
val packageInfo = pm.getPackageInfo(packageName, PackageManager.GET_ACTIVITIES)
NLog.i("packageInfo")
if (packageInfo != null) {
this.appExistText.text = "true"
}
} catch (e: PackageManager.NameNotFoundException) {
NLog.e(e.stackTraceToString())
}
현재 계속해서 에러를 뿜고 있지만,
해당 앱의 Manifest.xml에 타겟 앱의 쿼리를 추가해주면 특정 패키지 조회가 가능하다.
<queries>
<package android:name="com.donguran.sample" />
</queries>
또는 모든 패키지를 조회하고 싶은 경우 permission추가
- 권장되지 않음
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"
tools:ignore="QueryAllPackagesPermission" />
https://developer.android.com/training/package-visibility?hl=ko
Android에서 패키지 공개 상태 필터링 | Android 개발자 | Android Developers
Android에서 패키지 공개 상태 필터링 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 앱에서 Android 11(API 수준 30) 이상을 타겟팅하고 기기에 설치된 다른 앱
developer.android.com
activity이동
moveButton.setOnClickListener {
/*val componentName = ComponentName(packageName, "$packageName.IntroActivity")
val intent = Intent(Intent.ACTION_VIEW)
intent.apply {
addCategory(Intent.CATEGORY_LAUNCHER)
component = componentName
}.also {
startActivity(it)
}*/
val intent = pm.getLaunchIntentForPackage(packageName)
intent?.let {
startActivity(it)
}
}
728x90
반응형