Multi Window에서 Picture-in-picture를 사용하는 방법을 찾은 메모
개요
조금 자세한 것은 두어 Picture in picture를 이용할 수 있는 것을 알았으므로, 메모로서 써 둡니다.
뭔가 잘못되면 지적 부탁드립니다.
Picture-in-picture는 항상 위에 하나의 앱을 표시할 수 있습니다.
(//항상 Pokemon GO를 시작하고 싶다는 불순한 동기로 조사하지 않습니다.)
디버그용의 기능이라고 생각되기 때문에 자기 책임으로 부탁합니다.
절차
force_resizable_activities를 true로 설정
우선 모든 Activity를 resizeable로 하는 이하의 조작을 합니다.
adb shell settings put global force_resizable_activities 1
이렇게 한 후 기기를 다시 시작합니다.
이렇게하면 ActivityManagerService에서 PictureInPicture가 활성화됩니다.
mSupportsPictureInPicture = supportsPictureInPicture || forceResizable;
Activity Stack의 ID 확인
adb shell am stack list를 입력하고
Picture-in-picture로 시작하려는 앱이 있는 스택 ID를 기록해 둡니다. (1 등)
$ adb shell am stack list
Stack id=1 bounds=[0,0][1080,1920] displayId=0 userId=0
taskId=3236: com.android.settings/com.android.settings.Settings bounds=[0,0][1080,1920] userId=0 visible=true topActivity=ComponentInfo{com.nianticlabs.pokemongo/com.unity3d.player.UnityPlayerNativeActivity}
taskId=3235: com.nianticlabs.pokemongo/com.unity3d.player.UnityPlayerNativeActivity bounds=[0,0][1080,1920] userId=0 visible=true topActivity=ComponentInfo{com.nianticlabs.pokemongo/com.unity3d.player.UnityPlayerNativeActivity}
Stack id=0 bounds=[0,0][1080,1920] displayId=0 userId=0
taskId=3234: com.google.android.googlequicksearchbox/com.google.android.launcher.GEL bounds=[0,0][1080,1920] userId=0 visible=false topActivity=ComponentInfo{com.android.systemui/com.android.systemui.recents.RecentsActivity}
taskId=3237: com.android.systemui/com.android.systemui.recents.RecentsActivity bounds=[0,0][1080,1920] userId=0 visible=false topActivity=ComponentInfo{com.android.systemui/com.android.systemui.recents.RecentsActivity}
Picture-in-picture하기
1이 stack id로 그 다음에 LEFT, TOP, RIGHT, BOTTOM과 따릅니다.
adb shell am stack move-top-activity-to-pinned-stack 1 0 0 400 800
이것으로 이런 느낌이 듭니다.
그건 그렇고, 왜 move-top-activity-to-pinned-stack에서 Picture in picture인지 확실하지 않지만 enterPictureInPictureMode () 메서드 내에서 moveActivityToPinnedStackLocked ()를 호출하기 때문에 내부적으로 그렇게 부를 수 있습니다. 응.
htps : // 기주 b. 코 m / 안 d 로이 d / p t t rm_f 라메를 rks_ 바세 / b b /안 d로이 d/세 rゔぇr/아 m/아c ゔぃty 마나게 r세 rゔぃ세. 그럼 # L7536
해제는 adb shell am stack remove 스택 id로 할 수 있어야 합니다.
덤
여기만 메모하면 OK일지도
특정 앱 (pokemongo라는 패키지 포함)을 Picture-in-picture로 표시
adb shell am stack list|awk '/Stack id.*/{laststack = substr($2,4)} /.*pokemongo.*/{print laststack;exit}'|xargs -I^ adb shell am stack move-top-activity-to-pinned-stack \^ 0 0 100 150
한 앱의 Picture-in-picture 해제
adb shell am stack list|awk '/Stack id.*/{laststack = substr($2,4)} /.*pokemongo.*/{print laststack;exit}'|xargs -I^ adb shell am stack remove \^
Reference
이 문제에 관하여(Multi Window에서 Picture-in-picture를 사용하는 방법을 찾은 메모), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/takahirom/items/099428afd70628319089
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
force_resizable_activities를 true로 설정
우선 모든 Activity를 resizeable로 하는 이하의 조작을 합니다.
adb shell settings put global force_resizable_activities 1
이렇게 한 후 기기를 다시 시작합니다.
이렇게하면 ActivityManagerService에서 PictureInPicture가 활성화됩니다.
mSupportsPictureInPicture = supportsPictureInPicture || forceResizable;
Activity Stack의 ID 확인
adb shell am stack list를 입력하고
Picture-in-picture로 시작하려는 앱이 있는 스택 ID를 기록해 둡니다. (1 등)
$ adb shell am stack list
Stack id=1 bounds=[0,0][1080,1920] displayId=0 userId=0
taskId=3236: com.android.settings/com.android.settings.Settings bounds=[0,0][1080,1920] userId=0 visible=true topActivity=ComponentInfo{com.nianticlabs.pokemongo/com.unity3d.player.UnityPlayerNativeActivity}
taskId=3235: com.nianticlabs.pokemongo/com.unity3d.player.UnityPlayerNativeActivity bounds=[0,0][1080,1920] userId=0 visible=true topActivity=ComponentInfo{com.nianticlabs.pokemongo/com.unity3d.player.UnityPlayerNativeActivity}
Stack id=0 bounds=[0,0][1080,1920] displayId=0 userId=0
taskId=3234: com.google.android.googlequicksearchbox/com.google.android.launcher.GEL bounds=[0,0][1080,1920] userId=0 visible=false topActivity=ComponentInfo{com.android.systemui/com.android.systemui.recents.RecentsActivity}
taskId=3237: com.android.systemui/com.android.systemui.recents.RecentsActivity bounds=[0,0][1080,1920] userId=0 visible=false topActivity=ComponentInfo{com.android.systemui/com.android.systemui.recents.RecentsActivity}
Picture-in-picture하기
1이 stack id로 그 다음에 LEFT, TOP, RIGHT, BOTTOM과 따릅니다.
adb shell am stack move-top-activity-to-pinned-stack 1 0 0 400 800
이것으로 이런 느낌이 듭니다.
그건 그렇고, 왜 move-top-activity-to-pinned-stack에서 Picture in picture인지 확실하지 않지만 enterPictureInPictureMode () 메서드 내에서 moveActivityToPinnedStackLocked ()를 호출하기 때문에 내부적으로 그렇게 부를 수 있습니다. 응.
htps : // 기주 b. 코 m / 안 d 로이 d / p t t rm_f 라메를 rks_ 바세 / b b /안 d로이 d/세 rゔぇr/아 m/아c ゔぃty 마나게 r세 rゔぃ세. 그럼 # L7536
해제는 adb shell am stack remove 스택 id로 할 수 있어야 합니다.
덤
여기만 메모하면 OK일지도
특정 앱 (pokemongo라는 패키지 포함)을 Picture-in-picture로 표시
adb shell am stack list|awk '/Stack id.*/{laststack = substr($2,4)} /.*pokemongo.*/{print laststack;exit}'|xargs -I^ adb shell am stack move-top-activity-to-pinned-stack \^ 0 0 100 150
한 앱의 Picture-in-picture 해제
adb shell am stack list|awk '/Stack id.*/{laststack = substr($2,4)} /.*pokemongo.*/{print laststack;exit}'|xargs -I^ adb shell am stack remove \^
Reference
이 문제에 관하여(Multi Window에서 Picture-in-picture를 사용하는 방법을 찾은 메모), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/takahirom/items/099428afd70628319089텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)