글
앱에서 네이버 사전 앱을 호출하는 방법을 찾아보았습니다.
잘 만들어진 앱이라면 intent action 및 intent filter를 AndroidManifest.xml을 통해 추정할 수 있습니다. 자세한 내용은 다음 문서를 참조하세요
http://developer.android.com/guide/components/intents-filters.html
앱에서 AndroidManifest.xml을 열어보려면 aapt dump기능을 통해 간단히 보거나, apktool d 명령을 사용하여 아예 AndroidManifest.xml파일을 추출할 수도 있습니다. 자세한 과정은 생략하고...
그러나 네이버 사전 앱의 경우에는 AndroidManifest.xml를 통해 사전을 간단히 호출할 수 있는 방법을 찾을 수 없었고
AndroidManifest.xml의 일부 정보 및 구글 검색을 통해서 몇가지만 알아내었습니다. (AndroidManifest.xml은 간단히 하기 위해서 일부 정리함)
<activity android:label="@string/app_name" android:name=".WelcomeActivity" android:screenorientation="portrait"> <intent-filter> <data android:scheme="naverdic" android:path="com.nhn.android.naverdic"> <action android:name="android.intent.action.VIEW"> <category android:name="android.intent.category.DEFAULT"> <category android:name="android.intent.category.BROWSABLE"> </intent-filter> </activity>이것은 URL이 naverdic://com.nhn.android.naverdic일 경우에 해당 activity가 활성화된다는 얘기이며, 다음과 같이 코드를 호출하면 네이버 사전 앱이 호출된다는 것을 말합니다.
Intent intent = new Intent(); intent.setAction("android.intent.action.VIEW"); intent.setData(Uri.parse("naverdic://com.nhn.android.naverdic")); startActivity(intent);
일단 위와 같이 넣어보니 네이버 사전 앱이 잘 호출됩니다. 그러나 이것을 원하는 것이 아니지요. 특정 단어를 전달하려면 뭔가 좀 더 알아야 하기때문에, apktool을 이용해 디스어셈블하거나 jad를 통해서 디컴파일을 하는 수밖에 없었습니다. 역시.. 자세한 것은 생략하고,
Intent intent = new Intent(); intent.setAction("android.intent.action.VIEW"); String url = "http://m.endic.naver.com/search.nhn?query=" + query; String encoded = Base64.encodeToString(url.getBytes(), 0); intent.setData(Uri.parse("naverdic://com.nhn.android.naverdic?launchingPage=commonDict&dictUrl=" + encoded)); startActivity(intent);
위와 같이 하여 네이버 사전 앱을 호출 할 수 있었습니다
그러면 다음 사전 앱은 어떻게 호출할 수 있을까요? 검색해보면 다음 사전앱의 경우에는 다음의 문서가 있으며 네이버 사전앱보다 훨씬 쉽게 안드로이드 앱에서 호출할 수 있다는 걸 알 수 있습니다. 즉
Intent intent = new Intent(); intent.setAction("android.intent.action.VIEW"); intent.setData(Uri.parse("daummldapp://open?word=" + query)); startActivity(intent);
'안드로이드' 카테고리의 다른 글
우분투 16.04에서 AOSP 롤리팝 빌드시 unsupported reloc 43 오류 문제 (0) | 2017.02.26 |
---|---|
MediaStore 오디오 파일을 폴더 브라우징 방식으로 보여주기 (0) | 2015.04.14 |
SoundTouch 라이브러리를 사용한 재생 속도 제어 (0) | 2014.11.28 |
ffmpeg 라이브러리를 사용한 오디오 재생 (1) | 2014.11.20 |
Sonic 라이브러리 (2) | 2014.10.02 |
RECENT COMMENT