[개발자료] Android : OpenAPI (REST) - Public Data (버스)
- 개 요
- Android Developers
- 내 용
1) 프로젝트를 생성한다.
2) 프로젝트에서 메뉴 Tab 을 설정한다.
- Fragment_Tabs 을 설정한다.
3) 공공데이터포털 사이트에 접속한다.
4) 프로그래밍 한다.
- Fragment_Section3.java
package kr.co.xsun.basic; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public class Fragment_Section3 extends Fragment { public Fragment_Section3() { // TODO Auto-generated constructor stub } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.layout_fragment_section3, container, false); Button btn = (Button) findViewById(R.id.public_data_call); btn.setOnClickListener(this); return rootView; } @Override public void onClick(View v) { EditText et_webpage_src = (EditText) findViewById(R.id.public_data_src); try { String serviceUrl = "http://openapi.tago.go.kr/openapi/service/"; String serviceKey = " "; // OpenAPI Key serviceKey = URLEncoder.encode(serviceKey); String strSrch = "5500"; String strURL = serviceUrl + "?ServiceKey=" + serviceKey + "&strSrch=" + strSrch; URL url = new URL(strURL); XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); XmlPullParser parser = factory.newPullParser(); parser.setInput(url.openStream(), "utf-8"); int eventType = parser.getEventType(); boolean bSet = false; while (eventType != XmlPullParser.END_DOCUMENT) { switch (eventType) { case XmlPullParser.START_DOCUMENT: break; case XmlPullParser.START_TAG: String tag = parser.getName(); if (tag.equals("busRouteNm") || tag.equals("stStationNm") || tag.equals("edStationNm")) { bSet = true; } break; case XmlPullParser.END_TAG: break; case XmlPullParser.TEXT: if (bSet) { String content = parser.getText(); et_webpage_src.append(content + "\n"); bSet = false; } break; case XmlPullParser.END_DOCUMENT: break; } eventType = parser.next(); } } catch (Exception e) { Toast.makeText(v.getContext(), e.getMessage(), 0).show(); } } } |
- layout_fragment_section3.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/mapLayout" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <Button android:id="@+id/public_data_call" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <EditText android:id="@+id/public_data_src" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#0000ff" android:gravity="top" /> </LinearLayout> |
- AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="kr.co.xsun.basic" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="11" android:targetSdkVersion="18" /> <permission android:name="kr.co.xsun.basic.permission.MAPS_RECEIVE" android:protectionLevel="signature" /> <uses-permission android:name="kr.co.xsun.basic.permission.MAPS_RECEIVE" /> <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.RESTART_PACKAGES"/> <uses-feature android:glEsVersion="0x00020000" android:required="true" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="API_Key" /> <activity android:name="kr.co.xsun.basic.Activity_Intro" android:hardwareAccelerated="true" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="kr.co.xsun.basic.Activity_Main" android:hardwareAccelerated="true" android:label="@string/app_name" > </activity> </application> </manifest> |
# 단축키
- 콘텐츠 지원 : Ctrl + Space
- 매개변수 힌트 : Ctrl + Shift + Space
- 메소드 생성 : Ctrl + 1
- 소스코드 정리 : Ctrl + Shift + F
- 필요한 패키지 삽입 : Ctrl + Shift + O
- 코드 블록을 주석처리 : Ctrl + Shift + C (범위 지정 후)
- 참고자료
- Community Support & Resources
- Videos on Google Developers Live
- Stack Overflow : Google Maps
- Code samples on GitHub
- Related APIs
- Location APIs
- Places API
- Autocomplete API
- Android Developers : Training
- Google Maps Image API
- Street View Image API
- Google Project Hosting : Open Source for Android
- 참고문헌
- 안드로이드 애플리케이션 UI 디자인 프로그래밍
- 안드로이드 프로그래밍의 이해와 실체
- 그림으로 쉽게 설명하는 안드로이드 프로그래밍
- 안드로이드 프로그래밍 (눈으로 읽기만 해도 문법이 이해되는)
- 실습중심 안드로이드 프로그래밍
- 안드로이드 센서 프로그래밍
댓글
댓글 쓰기