운영체제 : Windows 8.1 64bit 개발툴 : Android Studio 1.5 SDK Version : Min 21, Max 23 작성날짜 : 2016-06-14 |
참고 : Daum Developers - URL스키마 안내
앱에서 다음지도가 설치되어 있다면, 다음지도를 실행하고 설치되어있지 않다면 설치유도를 하여 구글플레이에 다음지도 다운로드페이지로 연결하는 부분임.
DaumMapSchemeURL.java
public abstract class DaumMapSchemeURL {
public static final String DAUMMAP_PACKAGE_NAME = "net.daum.android.map";public static final String DAUMMAP_DOWNLOAD_PAGE =
"https://play.google.com/store/apps/details?id=net.daum.android.map";
private Context mContext;
private Intent mIntent;
public DaumMapSchemeURL(Context context, Intent intent){
this.mContext = context;
this.mIntent = intent;
}
/**
* myp scheme을 처리할 수 있는 어플리케이션이 존재하는지 검사
* @return 사용가능할 경우 true
*/
public boolean canOpenDaummapURL() {
PackageManager pm = mContext.getPackageManager();
List infos = pm.queryIntentActivities(mIntent, PackageManager.MATCH_DEFAULT_ONLY);
return infos != null && infos.size() > 0;
}
/**
* 다음맵 설치 여부 검사
* @return 설치되어 있을 경우 true
*/
public boolean existDaummapApp() {
PackageManager pm = mContext.getPackageManager();
try {
return (pm.getPackageInfo(DAUMMAP_PACKAGE_NAME, PackageManager.GET_SIGNATURES) != null);
} catch (PackageManager.NameNotFoundException e) {
return false;
}
}
/**
* 다음맵 다운로드 페이지열기
*/
public static void openDaummapDownloadPage(Context context) {
Intent intent = new Intent(Intent.ACTION_VIEW).setData(Uri.parse(DAUMMAP_DOWNLOAD_PAGE));
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
}
}
DaumMapSchemeURL 사용부분
private Intent onRoute(){
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(searchrouteurl));
DaumMapSchemeURL daummap = new DaumMapSchemeURL(context, intent) {
@Override
public boolean canOpenDaummapURL() {
return super.canOpenDaummapURL();
}
};
if(daummap.existDaummapApp()){
return intent;
} else {
DaumMapSchemeURL.openDaummapDownloadPage(context);
}
return null;
}
반환되는 Intent 를 startActivity(intent); 함수를 사용하여 실행해주면 된다.
'Programming > Android' 카테고리의 다른 글
[Android] 시스템 설정으로 이동하기 (0) | 2016.07.13 |
---|---|
[Android] Xml 파싱 (2) | 2016.06.22 |
[Android] ScrollView scrollbar 없애기 (0) | 2016.06.02 |
[Android] Open Weather Map 사용하기 (0) | 2016.05.25 |
[Android] 코드상에서 언어 설정 변경하기 (0) | 2016.05.24 |