App Linker
App Linker 은 HSP 에서 확장 라이브러리로 제공하는 API 로 aar 라이브러리 파일과 build.gradle 파일을 수정하여 사용할 수 있다.
라이브러리 추가 방법은 Android 개발 가이드의 내용을 참조하면 된다.
App Linker 은 외부 앱을 실행 시키기 위한 기능을 가지고 있으며, Optional 한 기능이므로 사용자가 별도로 개발하여 사용해도 무방하다.
start
내/외부 앱을 실행 시킬 수 있으며 인자로 사용되는 JSONObject 는 아래와 같은 형태를 가지며 대부분 Android 에서 앱을 실행 시킬 때 사용되는 데이터 위주로 구성되며 그 세부 내용은 하단의 표를 참고 한다.
JSON Format
{
"android" : {
"packageName": "",
"activity": "",
"action": "",
"uri": "",
"type": "",
"permissions": [],
"extra": []
}
}
"android" : {
"packageName": "",
"activity": "",
"action": "",
"uri": "",
"type": "",
"permissions": [],
"extra": []
}
}
파라미터 | 설명 |
---|---|
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")
})
}
// 3.10.18 이상
DAPAppLinker.start(activity, obj, {
// TODO
}) {
// TODO
}
// 3.10.18 이하
DAPAppLinker.start(activity, obj)
put("android", JSONObject().apply {
put("action", "android.intent.action.SENDTO")
put("uri", "smsto:0800000123")
})
}
// 3.10.18 이상
DAPAppLinker.start(activity, obj, {
// TODO
}) {
// TODO
}
// 3.10.18 이하
DAPAppLinker.start(activity, obj)
JSONObject data = new JSONObject();
data.put("action", "android.intent.action.SENDTO");
data.put("uri", "smsto:0800000123");
JSONObject obj = new JSONObject();
obj.put("android", data);
// 3.10.18 이상
DAPAppLinker.start(activity, obj, result -> {
// TODO
}, e -> {
// TODO
});
// 3.10.18 이하
DAPAppLinker.start(activity, obj);
data.put("action", "android.intent.action.SENDTO");
data.put("uri", "smsto:0800000123");
JSONObject obj = new JSONObject();
obj.put("android", data);
// 3.10.18 이상
DAPAppLinker.start(activity, obj, result -> {
// TODO
}, e -> {
// TODO
});
// 3.10.18 이하
DAPAppLinker.start(activity, obj);
canStart
canStart 는 실행하고자 하는 앱의 패키지 명을 미리 전달하여 해당 앱이 설치 되어 있는지 확인할 수 있는 메소드 이다.
Example
// 3.10.18 이상
DAPAppLinker.canStart(activity, "패키지명", {
// TODO
}) {
// TODO
}
// 3.10.18 이하
val result = DAPAppLinker.canStart(activity, "패키지명")
DAPAppLinker.canStart(activity, "패키지명", {
// TODO
}) {
// TODO
}
// 3.10.18 이하
val result = DAPAppLinker.canStart(activity, "패키지명")
// 3.10.18 이상
DAPAppLinker.canStart(activity, "패키지명", result -> {
// TODO
}, e -> {
// TODO
});
// 3.10.18 이하
boolean result = DAPAppLinker.canStart(activity, "패키지명");
DAPAppLinker.canStart(activity, "패키지명", result -> {
// TODO
}, e -> {
// TODO
});
// 3.10.18 이하
boolean result = DAPAppLinker.canStart(activity, "패키지명");