마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

파파고 미니와 같은 어플을 만들 때 필요한 요소는 뭐가 있나요?

0 추천
우선 구현하고 싶은 기능은, 만들고자 하는 어플을 어플A라고 하고,
안드로이드에 설치된 다른 어플B와 어플C가 있을 때,
어플B에서 어떤 문자열을 복사한 후 어플A를 열어 클립보드의 내용을 수정하고
수정한 내용을 어플C에 붙여넣기하는 것입니다.

 

단순히 아무 조건 없이 클립보드에 접근할 수 있으면 어떻게 만들어도 상관이 없지만
안드로이드 10 이후 클립보드 접근 조건이 두 가지가 있더군요.

1. 어플에 포커스가 있어야 한다.
2. IME(input method editor, EditText 같은 거 클릭하면 가상키보드가 뜨는 조건)가 있어야 한다.

 

단순히 다른 어플 사용 중에도 어플A 의 뷰를 터치하면 클립보드를 읽을 줄 알았는데 서비스만으로는 1. 을 만족시키지 못 하는지 계속 클립보드가 빈 것과 같은 반응을 보였습니다. 그래서 1.을 만족시키기 위해서 어플A에서, MainActivity 에서 서비스를 통해 뷰를 하나 띄웠고, 뷰를 터치하면

팝업으로 액티비티 하나를 실행하도록 했습니다. EditView 를 배치하는 식으로 조건을 만족시키려고 했는데 결국 EditView 를 삭제해도 상관없었습니다.

 

구현한 부분에서 부족한 부분은,
1. 파파고 미니는 다른 어플을 배경으로 그대로 두고 팝업창으로 뜨는 반면 제가 뷰를 터치해서 Intent 로 액티비티를 startActivity() 하면 배경이 어플A 의 배경인 하얀 화면으로 가득 차버립니다.

2. 만약 어플B와 어플C를 '최근 어플 목록' 버튼을 두 번 터치하면서 전환하는 중에 파파고 미니의 기능을 사용할 경우 '최근 어플 목록'에 파파고 미니는 뜨지 않으므로 여전히 어플B와 C를 두 번 터치로 전환이 가능했습니다. 반면 제가 만든 어플에서는 '최근 어플 목록'에 어플A가 끼어들어버리는 현상이 발생합니다.

※파파고 미니를 띄워놓고 '최근 어플 목록'을 모두 삭제한 후 어플B, C를 실행해 보니 파파고는 어플 목록에 아예 뜨지 않더군요. 그렇기에 어플B와 C를 전환하는 데 방해가 되지 않았습니다.

 

ChatGPT 에게 예제 코드를 묻기도 하고 구글링도 하면서 만들어보고는 있는데
ChatGPT 도 보안정책을 만족하는 예제를 내놓지 못 하고 구현하려는 기능에 대해
뭐라고 구글링할지도 몰라서 질문을 올려봅니다. 읽어주셔서 감사합니다. _ _)
윕니니바 (120 포인트) 님이 2월 15일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...