我正在构建一项服务,将安装的应用程序列表从Android TV或Fire TV发送到手机.然后,手机会发回它想要启动的应用程序的程序包名称,然后服务就会启动它.
这是创建列表的代码
public List<InstalledApp> GetInstalledApps(boolean isAndroid) {
PackageManager pm = getPackageManager();
List<ApplicationInfo> allPackages = pm.getInstalledApplications(PackageManager.GET_META_DATA);
List<InstalledApp> userPackages = new ArrayList<InstalledApp>();
for (ApplicationInfo packageInfo : allPackages) {
if (isSystemPackage(packageInfo)) continue;
InstalledApp app = new InstalledApp();
app.setPackageName(packageInfo.packageName);
app.setAppName(pm.getApplicationLabel(packageInfo).toString());
if (!isAndroid) {
app.setIcon(pm.getApplicationIcon(packageInfo));
}
app.setAccentColor(getAccentColor(pm.getApplicationIcon(packageInfo)));
userPackages.add(app);
}
return userPackages;
}
Run Code Online (Sandbox Code Playgroud)
这就是我启动应用程序的方式
public void launchApp(String packageName) {
PackageManager pm = getPackageManager();
Intent intent = pm.getLaunchIntentForPackage(packageName);
startActivity(intent);
}
Run Code Online (Sandbox Code Playgroud)
在Fire TV上,一切都很完美,但在Android TV上,许多应用程序的意图始终为空.这些才一点点.
但是使用相同的代码,这些应用程序工作正常.
谁能提供任何有关我可能做错的见解?
谢谢!
编辑: …
我正在为AndroidTV制作申请并收到错误
java.lang.UnsatisfiedLinkError:
dalvik.system.PathClassLoader[DexPathList[[zip file
"/data/app/mytv.mytv-2/base.apk"
Run Code Online (Sandbox Code Playgroud)
在Android 6.0.1的NexusPlayer上.好奇它适用于Android 5.1.1的智能电视.
整个文本错误是:
java.lang.UnsatisfiedLinkError:
dalvik.system.PathClassLoader[DexPathList[[zip file
"/data/app/mytv.mytv-2/base.apk"],nativeLibraryDirectories=[/data/app/mytv.mytv-2/lib/x86, /data/app/mytv.mytv-2/base.apk!/lib/x86, /vendor/lib, /system/lib]]]
couldn't find "libnmpsdk.so"
Run Code Online (Sandbox Code Playgroud)
如果有帮助.
(jniLabs很好用2个文件夹armeabi和armeabi-v7a,每个文件夹都有libnmpsdk.so)
日志显示的错误行包含以下部分代码:
static {
System.loadLibrary("nmpsdk");
}
Run Code Online (Sandbox Code Playgroud)
如果有人遇到过这个问题,请告诉我,我还没有找到解决问题的方法.
提前致谢.
我正在尝试发布Android TV应用程序,但是开发者控制台说:“您需要添加至少2个非Android TV屏幕截图。” 但此apk仅适用于Android TV,因为还有针对平板电脑和手机的另一个apk。如何仅定位Android TV?
另外,我只想为NexusPlayer提交此特定的APK,然后添加其他Android电视,因为该应用已在其上经过测试并确认了兼容性。问题是开发者控制台从默认设置为兼容的almos 3000设备(包括平板电脑和手机)开始,我只能看到手动禁用功能。
编辑
临时解决方案是仅针对大屏幕和超大屏幕,将自动支持的设备数量减少到800。仍然必须手动禁用不需要的设备,但杀伤力较小。
<supports-screens android:smallScreens="false"
android:normalScreens="false"
android:largeScreens="true"
android:xlargeScreens="true"
android:requiresSmallestWidthDp="720" />
Run Code Online (Sandbox Code Playgroud)