2017-04-20 38 views
-1

前几天我的第一个问题没有得到任何答案,我仍然找不到任何有用的东西在网上,所以我会给它一个更普遍的尝试问题(我正在为我的实习工作,我成长得相当绝望,因为我没有任何(更多)想法如何解决这个问题:Android - 为不同的设备执行不同的代码

我正在写一个应用程序,它应该一般在Android上工作手机,但支持某种行为,目前只支持一种设备(LG Stylus 2上的数字收音机),在该设备上该应用可以正常工作,但在任何其他设备上都会因为UnsatisfiedlinkError而崩溃。使应用程序检测到维德只在启动时执行数字广播代码,否则我想执行不同的代码(网络流媒体广播)。

我不一定要问代码,但是对于这个概念来说,正确的方法是什么。任何答案非常感谢。

谢谢你们

戴夫

+0

显示如何调用生成异常的代码并为堆栈跟踪添加logcat –

回答

2

你可以做这个目的以下。

String model = Build.MODEL; 

if(model.equalsIgnoreCase("LG Stylus 2") 
{ 
    //do your task 
} 
+0

感谢MezzyDroid,这已经非常有帮助! :) 任何想法,我可以告诉系统在启动时排除某个(不支持的)库,而不是一个设备? – user3142830

+0

我不认为这是可能的.....因为gradle不允许压缩库在某些设备上运行。但是,只有在LG Stylus运行时才能获取型号名称并使用该特定功能,否则会禁用该功能。 – MezzyDroid

+0

再次非常感谢! – user3142830

1

一个可能的解决方案是在gradle和Android Studio中使用构建风格特性。这表明您可以为不同的配置构建多个APK。例如,您可以为LG Stylus 2支持创建构建风格。然后用适当的<uses-feature>标签创建一个AndroidManifest.XML文件。还要将自定义的依赖关系和Java代码添加到新的风格中。

相关问题