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

같은 기기내 다른 어플 실행

–1 추천
안녕하세요...질문이 있습니다.

같은 기기내에 있는 다른 어플을 실행시킬려고 합니다.

A라는 앱에서 intent를 이용하여 다른 어플(B앱)을 실행시키는 것은 성공했는데요..

A라는 앱에서 B앱의 함수는 어떻게 호출해야되는지 궁금합니다....
앤드류이드 (6,190 포인트) 님이 2016년 6월 28일 질문

4개의 답변

0 추천
캬옹이 (37,920 포인트) 님이 2016년 6월 28일 답변
링크는 실행하는 것뿐인데욧.. 이건 미리 언급드렸듯이 성공했습니다...
제가 알고 싶은건 함수 호출부분입니다.^^
감사합니다.
그러면 intent를 이용해서 하면될것 같은데요
intent에 putExtra로 특정 값을 다른앱으로 전달하고,
그 해당 앱에서는 intent로 전달받은 값을 꺼내서 내가 보낸 특정값과 일치하면 해당 함수를 호출하면될것 같습니다.
0 추천
다른 앱의 클래스에 정의된 메소드를 실행하고 싶다는 말씀인가요?

해당 앱이 그렇게 하는 기능을 제공하지 않는다면 불가능합니다.
익명사용자 님이 2016년 6월 28일 답변
2개의 앱이 모두 제가 짠 소스일 경우에도 불가능한가요????
A앱과 B앱이 모두 자신이 만든 것이라면, B앱에 외부 앱의 호출을 받아서 메소드를 실행하는 기능을 추가하면 됩니다.

Intent에 extra를 넣어서 하면 되겠네요.
간단한 예제가 가능하신지??? 아직 초보라서 이해가 잘 가질 않네요
0 추천

아무리 자신이 만든 어플이라고 해도 다른 어플의 함수에 접근을 할 수는 없습니다.

다만 BroadCastReceiver를 사용하신다면 원하시는 기능을 적용 하실 수 있을겁니다.

ThisPlus (46,920 포인트) 님이 2016년 6월 28일 답변
좀 세부적으로 알 수 있을까용? 어떠한 식으로 접근해야할지 감이 안 오네요
0 추천

흠,, AIDL

AIDL은 IDL(인터페이스 정의 언어)들과 비슷합니다. 이것은 클라이언트와 서버가 서로 다른 프로세스에서도 통신(IPC)할 수 있도록 프로그래밍 인터페이스를 정의하는데에 사용됩니다. 안드로이드 시스템에서, 프로세스는 다른 프로세스의 메모리에 직접 접근할 수 없습니다. 따라서 다른 프로세스와 통신하기 위해서는, 우선 객체들을 OS가 이해할 수 있도록 원시 타입의 데이터(primitives)로 분리하고, 마샬링(직렬화와 유사)을 할 필요가 있습니다. 그런데 마샬링을 위한 개발작업은 상당히 지루하기 때문에, 안드로이드는 AIDL을 이용하여 그것의 상당부분을 대신 해줍니다.  

이런걸 생각하신건 아니가요?

douncoding (480 포인트) 님이 2016년 6월 28일 답변
이쪽은 첨 듣는건데....좀 더 디테일하게 봐야할 것 같네요.. 감사합니다,
내 도움이 되셨으면 합니다~ ㅎㅎ 힘내세요~
...