applinker


applinker는 3.0.0 버전 이상 부터 제공되며 해당 라이브러리를 추가하여 사용해야 된다.

applinker 은 HSP 에서 확장 라이브러리로 제공하는 API 로 aar 라이브러리 파일과 build.gradle 파일을 수정하여 사용할 수 있다. 

라이브러리 추가 방법은 Android 개발 가이드의 내용을 참조하면 된다.

applinker 은 외부 앱을 실행 시키기 위한 기능을 가지고 있으며, Optional 한 기능이므로 사용자가 별도로 개발하여 사용해도 무방하다. 


start

내/외부 앱을 실행 시킬 수 있으며 인자로 사용되는 JSONObject 는 아래와 같은 형태를 가진다.

대부분 Android 에서 앱을 실행 시킬 때 사용되는 데이터 위주로 구성되며 그 세부 내용은 하단의 표를 참고 한다. 

targetSdkVersion이 안드로이드 11 이상인 앱에서는 디바이스에 설치된 다른 앱 목록을 알 수 없고, 미리 매니페스트 파일에 지정한 앱의 정보만 가져올 수 있다.
쿼리 하고 싶은 앱을 지정하려면 AndroidManifest.xml에 <queries> 요소를 추가해서 쿼리 할 패키지 이름 또는 인텐트 필터 서명을 포함해야 한다.

패키지 이름 지정 방법
<manifest package="com.hanwha.testmobile">
    <queries>
        <package android:name="com.example.sample" />
    </queries>
    ...
</manifest>

인텐트 필더 지정 방법
<manifest package="com.hanwha.testmobile">
    <queries>
        <intent>
            <action android:name="android.intent.action.SEND" />
            <data android:mimeType="image/jpeg" />
        </intent>
    </queries>
    ...
</manifest>

JSON Format

{
   "android" : {
       "packageName": "",
       "activity": "",
       "action": "",
       "uri": "",
       "type": "",
       "permissions": [],
       "extra": []
    }
}

options

필드설명M/O
packageName실행시킬 앱의 패키지 명 
activity실행시킬 앱의 Activity 클래스 명 
action앱을 실행 할 때 setAction 에 설정할 값 
uri앱을 실행 할 때 setData 에 설정할 값 
type앱을 실행 할 때 setType 에 설정할 값 
permissions앱 실행 에 필요한 런타임 퍼미션 목록 
extra앱을 실행 할 때  setExtra 에 설정할 값 
   

Example

val obj = JSONObject().apply {
    put("android", JSONObject().apply {
        put("action", "android.intent.action.SENDTO")
        put("uri", "smsto:0800000123")
   })
}

DAPAppLinker.start(this@MainActivity, obj, {
   // TODO
}) {
   // TODO
}
JSONObject data = new JSONObject();
data.put("action", "android.intent.action.SENDTO");
data.put("uri", "smsto:0800000123");

JSONObject obj = new JSONObject();
obj.put("android", data);

DAPAppLinker.start(MainActivity.this, obj, result -> {
       // TODO
   }, e -> {
       // TODO
   });

Error Code

CodeCauseComment
E11600파라메터 값이 잘못되어 있을 경우 
E11601전달된 액션 값이 알 수 없는 액션일 경우 
E11650실행 중 오류가 발생 되었을 경우 
E11699알 수 없는 오류가 발생 되었을 경우