我正在使用Android Lollipop开发适用于Sony Smartwatch 3的Android佩戴应用程序,并且似乎无法找到实现工作自助终端模式的方法。
我到处都看,但似乎什么都没有用
还尝试了屏幕固定,但是没有选项可以在手表上进行(手动)并将startLockStart()
添加到我的onCreate并不会对任何事情做任何事情 - 我仍然可以退出该应用。< / p>
非常感谢任何不可能的帮助或确认
答案 0 :(得分:1)
确保运行Android L MR1(Android 5.1)。在运行L MR0(Android 5.0)的Sony设备中,startLockTask的Google实施有一个错误,可以退出该应用。
由于这是一款纯粹的Google代码,因此很可能与其他OEM设备的情况相同。
如果您没有使用设备管理应用,请确保您的应用lockTaskMode不是1或3。
希望这有帮助。
/ Marek(索尼移动员工)
答案 1 :(得分:0)
我已经在Medium上写了博客,以便在Android上实现Kiosk模式。它完全适用于Wear OS 2.X和Wear OS 1.X的90%。请查看Medium。
步骤:
1:REORDER_TASKS:在应用暂停时将您的应用重新排序到顶部。
ActivityManager activityManager = (ActivityManager) getApplicationContext()
.getSystemService(Context.ACTIVITY_SERVICE);
activityManager.moveTaskToFront(getTaskId(), 0);
2:在清单中将类别设置为活动:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
3:覆盖按钮的功能
public boolean onKeyDown(int keyCode, KeyEvent event){
if (event.getRepeatCount() == 0) {
if (keyCode == KeyEvent.KEYCODE_STEM_1) {
// Do stuff
return true;
} else if (keyCode == KeyEvent.KEYCODE_STEM_2) {
// Do stuff
return true;
} else if (keyCode == KeyEvent.KEYCODE_STEM_3) {
// Do stuff
return true;
}
}
return super.onKeyDown(keyCode, event);
}
4:通过应用主题
禁用滑动功能<style name="AppTheme" parent="@android:style/Theme.DeviceDefault">
<item name="android:windowSwipeToDismiss">false</item>
</style>
5:在启动时重启应用程序
注意:
此功能不是用户友好的,Android Play商店不会批准这些功能,除非您有充分的理由