Meta Quest 2: Benutzerdefinierte Launcher nicht als Standard -Home -App (Android 2D -Anwendung) anerkannt

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Meta Quest 2: Benutzerdefinierte Launcher nicht als Standard -Home -App (Android 2D -Anwendung) anerkannt

by Anonymous » 27 Feb 2025, 07:37

Ich entwickle einen benutzerdefinierten Launcher für Meta Quest 2 mit Kotlin und Jetpack Compose. Ziel ist es, den Standard -Oculus -Heimwerker durch meine eigene App zu ersetzen. Nach dem Hinzufügen der erforderlichen Absichten in AndroidManifest.xml wird die App jedoch nicht als Launcher erkannt. < /P>
























< /code>
Hauptaktivitätsklasse ist wie folgt < /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>

Top