如何为某些架构禁用Android服务?

时间:2015-06-12 14:15:54

标签: android xml service twilio

目前我在我的应用程序中使用twilio在android中进行调用,但他们还不支持arm64手机,我的应用程序不断崩溃,因为它没有找到合适的libtwilio-native.so文件。

有没有办法只为架构禁用此服务?有没有办法在默认情况下禁用服务并在运行时启用它?

其他信息:

我的manifest.xml文件包含:

        <service
        android:name="com.twilio.client.TwilioClientService"
        android:exported="false" />

bools.xml trick对我来说不起作用,因为arm64手机和其他手机可以拥有相同的Android版本。

1 个答案:

答案 0 :(得分:0)

  

有没有办法在默认情况下禁用服务并在运行时启用它?

android:enabled="false"添加到清单中的<service>。然后,在运行时,如果需要,您可以使用PackageManager和笨拙命名的setComponentEnabledSetting()方法启用它。

  

bools.xml技巧对我不起作用,因为arm64手机和其他手机可以拥有相同的Android版本。

是的,尽管如果您在Android Studio中使用产品风格来处理CPU体系结构拆分,您应该能够在Gradle中的产品风味定义中使用resConfig来代替实际的bools.xml用于定义布尔资源的文件,并在android:enabled中使用它。请注意,我没有试过这个,YMMV,不要嘲笑Happy Fun Ball等等。