In our flutter TV application, we are trying the open few entertainment apps using DeviceApps . The following methods doesn't open the App though it is installed on the device.
DeviceApps.openApp("com.sonyliv");
Not able to figure out why sonyliv is not opening.
Note: Please ignore Touch is not implemented to this app currently.So only tap works.
Complete snippet
import 'package:device_apps/device_apps.dart';
import 'package:flutter/material.dart';
import 'dart:typed_data';
class ListAppsPage extends StatelessWidget {
const ListAppsPage({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
body: ListAppsBody(),
);
}
}
class ListAppsBody extends StatefulWidget {
@override
_ListAppBodyState createState() => _ListAppBodyState();
}
class _ListAppBodyState extends State {
List listApps = [];
@override
void initState() {
super.initState();
_getApp();
}
void _getApp() async{
List _apps = await DeviceApps.getInstalledApplications(includeAppIcons: true);
for(var app in _apps){
// print(app.apkFilePath);
if(!app.packageName.contains("example")) {
var item = AppModel(
title: app.appName,
package: app.packageName,
icon: app.icon,
);
listApps.add(item);
}
}
//reloading state
setState(() {});
}
@override
Widget build(BuildContext context) {
return ListView.builder(
itemCount: listApps.length,
itemBuilder: (context, int i) => Column(
children: [
ListTile(
leading: Image.memory(listApps[i].icon),
title: Text(listApps[i].title),
subtitle: Text(listApps[i].package),
onTap: (){
DeviceApps.openApp(listApps[i].package);
},
),
],
),
);
}
}
class AppModel{
final String title;
final String package;
final Uint8List icon;
AppModel({
required this.title,
required this.package,
required this.icon
});
}