2016年04月19日

[Android] 画面の固定化(ピン留め)をプログラムから行う

startLockTask()を呼び出せば良い。

5系端末未満も対応するとなるとOverrideしてこんな感じかな。
@Override
public void startLockTask() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
super.startLockTask();
}

}

@TargetApi(Build.VERSION_CODES.LOLLIPOP)
@Override
public void stopLockTask() {

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
boolean isPinned;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
isPinned = activityManager.getLockTaskModeState() == ActivityManager.LOCK_TASK_MODE_PINNED;
} else {
isPinned = activityManager.isInLockTaskMode();
}
if (isPinned) {
super.stopLockTask();
}
}
}
startLockTask()を呼び出した時に確認のモーダルが出てきてしまうんだが、これが出ない方法ないものか・・・?
あと、stopLockTask()はピン留めしてない時に呼び出すと落ちる。
stopLockTask()の中でピン留めしてるかどうか判定してほしいよね。。。
posted by すとれん at 12:50 | Comment(0) | Android開発ネタ | このブログの読者になる | 更新情報をチェックする