Форум для тех, кто программирует под Android
Anonymous
Meta Quest 2: пользовательский запуск не распознается как приложение для дома по умолчанию (Android 2D Application)
Сообщение
Anonymous » 27 фев 2025, 09:37
Я разрабатываю пользовательскую пусковую установку для Meta Quest 2 с помощью Kotlin и Jetpack Compose. Цель состоит в том, чтобы заменить по умолчанию Oculus Home Launcher на собственном приложении. Однако после добавления необходимых фильтров намерения в AndroidManifest.xml приложение не признается в качестве пускового установки. < /P>
Код: Выделить всё
< /code>
Основной класс активности заключается в следующем < /p>
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
TestOrbitterApplicationTheme {
AppListScreen()
}
}
}
private fun getInstalledApps(): List {
val pm = packageManager
val apps = mutableListOf()
val packages = pm.getInstalledApplications(PackageManager.GET_META_DATA)
for (app in packages) {
val label = pm.getApplicationLabel(app).toString()
val icon = pm.getApplicationIcon(app)
val packageName = app.packageName
// Exclude system apps (optional)
if (pm.getLaunchIntentForPackage(packageName) != null) {
apps.add(AppInfo(label, icon, packageName))
}
}
return apps
}
@Composable
fun AppListScreen() {
val apps = remember { getInstalledApps() }
LazyColumn(modifier = Modifier.fillMaxSize()) {
items(apps) { app ->
AppItem(app)
}
}
}
@Composable
fun AppItem(app: AppInfo) {
Row(
modifier = Modifier
.fillMaxWidth()
.padding(10.dp)
.clickable {
launchApp(app.packageName)
},
horizontalArrangement = Arrangement.Start
) {
Image(
bitmap = app.icon.toBitmap().asImageBitmap(),
contentDescription = app.name,
modifier = Modifier.size(48.dp)
)
Spacer(modifier = Modifier.width(10.dp))
Text(text = app.name, style = MaterialTheme.typography.bodyLarge)
}
}
private fun launchApp(packageName: String) {
val intent = packageManager.getLaunchIntentForPackage(packageName)
if (intent != null) {
startActivity(intent)
} else {
Log.e("Launcher", "App not found: $packageName")
}
}
}
data class AppInfo(val name: String, val icon: Drawable, val packageName: String)
fun Drawable.toBitmap(): Bitmap {
if (intrinsicWidth
< /blockquote>
Подробнее здесь: [url]https://stackoverflow.com/questions/79471782/meta-quest-2-custom-launcher-not-recognized-as-default-home-app-android-2d-app[/url]
1740638230
Anonymous
Я разрабатываю пользовательскую пусковую установку для Meta Quest 2 с помощью Kotlin и Jetpack Compose. Цель состоит в том, чтобы заменить по умолчанию Oculus Home Launcher на собственном приложении. Однако после добавления необходимых фильтров намерения в AndroidManifest.xml приложение не признается в качестве пускового установки. < /P> [code] < /code> Основной класс активности заключается в следующем < /p> class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { TestOrbitterApplicationTheme { AppListScreen() } } } private fun getInstalledApps(): List { val pm = packageManager val apps = mutableListOf() val packages = pm.getInstalledApplications(PackageManager.GET_META_DATA) for (app in packages) { val label = pm.getApplicationLabel(app).toString() val icon = pm.getApplicationIcon(app) val packageName = app.packageName // Exclude system apps (optional) if (pm.getLaunchIntentForPackage(packageName) != null) { apps.add(AppInfo(label, icon, packageName)) } } return apps } @Composable fun AppListScreen() { val apps = remember { getInstalledApps() } LazyColumn(modifier = Modifier.fillMaxSize()) { items(apps) { app -> AppItem(app) } } } @Composable fun AppItem(app: AppInfo) { Row( modifier = Modifier .fillMaxWidth() .padding(10.dp) .clickable { launchApp(app.packageName) }, horizontalArrangement = Arrangement.Start ) { Image( bitmap = app.icon.toBitmap().asImageBitmap(), contentDescription = app.name, modifier = Modifier.size(48.dp) ) Spacer(modifier = Modifier.width(10.dp)) Text(text = app.name, style = MaterialTheme.typography.bodyLarge) } } private fun launchApp(packageName: String) { val intent = packageManager.getLaunchIntentForPackage(packageName) if (intent != null) { startActivity(intent) } else { Log.e("Launcher", "App not found: $packageName") } } } data class AppInfo(val name: String, val icon: Drawable, val packageName: String) fun Drawable.toBitmap(): Bitmap { if (intrinsicWidth < /blockquote> Подробнее здесь: [url]https://stackoverflow.com/questions/79471782/meta-quest-2-custom-launcher-not-recognized-as-default-home-app-android-2d-app[/url]