我正在与例外作斗争
Fatal Exception: java.lang.RuntimeException: Unable to start activity ComponentInfo{net.hubalek.android.apps.reborn.pro/android.service.dreams.DreamActivity}: java.lang.ClassCastException: android.os.BinderProxy cannot be cast to android.service.dreams.DreamService$DreamServiceWrapper
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3792)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3968)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2307)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:246)
at android.app.ActivityThread.main(ActivityThread.java:8512)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130)
Run Code Online (Sandbox Code Playgroud)
此问题是搭载 Android 11 的三星设备所独有的。有人知道如何修复它吗?除了对运行 Android 11 的三星手机禁用此功能外。
恐怕它超出了我的代码范围。
源代码DreamActivity似乎非常简单 - https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/service/dreams/DreamActivity.java
我有一项服务,尤其是 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>
Run Code Online (Sandbox Code Playgroud)
我想看看是否有一种方法可以有条件地以Service编程方式加载此声明。换句话说,我只想根据一些程序逻辑来声明这一点DreamService。我不希望 Android 列出或什至知道我的应用程序的 Daydream 功能,除非我以编程方式启用它。
这样的事情可能吗?