블로그 이미지
Kanais
Researcher & Developer 퍼즐을 완성하려면 퍼즐 조각들을 하나 둘씩 맞춰나가야 한다. 인생의 퍼즐 조각들을 하나 둘씩 맞춰나가다 보면 인생이란 퍼즐도 완성되는 날이 오려나...?

calendar

1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

Notice

2016. 6. 14. 14:46 Programming/Android


운영체제 : 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);    함수를 사용하여 실행해주면 된다.


posted by Kanais