我有一个应用程序,它在启动时会自动将自己注册为默认启动器并固定在屏幕上。安装该应用程序时,所有功能都可以正常运行,应用程序也被成功固定,只能看到返回按钮。
然而,当设备首次启动时,应用程序无法正确固定。我会看到一系列的提示信息“屏幕已固定”和“屏幕未固定”,这些提示信息会多次出现。此外,“主页”和“最近任务”按钮仍然可见。
运行命令“adb shell dumpsys activity activities”后,最后几行显示应用程序未被固定。
然而,当设备首次启动时,应用程序无法正确固定。我会看到一系列的提示信息“屏幕已固定”和“屏幕未固定”,这些提示信息会多次出现。此外,“主页”和“最近任务”按钮仍然可见。
运行命令“adb shell dumpsys activity activities”后,最后几行显示应用程序未被固定。
mLockTaskModeState=NONE mLockTaskPackages (userId:packages)=
0:[com.example.myapp]
mLockTaskModeTasks[]
--
测试设备为华硕ZenPad,运行Android 6.0的Marshmallow系统,版本号为23。
我依赖于MainActivity清单文件中的"lockTaskMode"属性来锁定屏幕(而不是使用activity.startLockTask()方法):
<activity
android:name=".MainActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:label="@string/launcher_main"
android:launchMode="singleTask"
android:lockTaskMode="if_whitelisted"
android:screenOrientation="landscape">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.HOME"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
任何帮助或指导都将不胜感激。
lockTaskMode
并调用startLockTask()
会发生什么? - Kevin Krumwiede