gpt4 book ai didi

android - 在 AndroidManifest 中有条件地声明服务

转载 作者:行者123 更新时间:2023-11-29 14:48:53 24 4
gpt4 key购买 nike

我有一项服务,特别是 Android Daydream DreamService,我已在我的 AndroidManifest.xml 文件中声明。当我的应用程序加载时,Android 检测到此声明并将我的应用程序作为一个选项添加到用户可以在其设置中选择的 Daydreams 列表中。我声明此 Service 如下...

<service android:name=".daydream.DaydreamService" android:exported="true"
android:icon="@drawable/icon" android:label="@string/app_name" >
<intent-filter>
<action android:name="android.service.dreams.DreamService" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>

<meta-data
android:name="android.service.dream"
android:resource="@xml/daydream" />

</service>

我正在尝试查看是否有一种方法可以有条件地以编程方式加载此 Service 声明。换句话说,我只想根据一些编程逻辑声明这个DreamService。我不希望 Android 列出甚至意识到我应用的 Daydream 功能,除非我以编程方式启用它。

这样的事情可能吗?

最佳答案

Is something like this possible?

是的,即使没有黑体字也是如此。 :-)

Call setComponentEnabledSetting() on PackageManager切换组件是否启用。使用 list 中的 android:enabled 属性来指示其启动状态,其中整体默认为已启用。

因此,您可以在 .daydream.DaydreamService 组件上添加 android:enabled="false" 以使其最初被禁用,然后使用 setComponentEnabledSetting( ) 以便稍后根据需要启用它。

关于android - 在 AndroidManifest 中有条件地声明服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25495497/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com