(2016년 여름방학 프로젝트 하는 중에 가장 애를 많이 썩인 부분이다....)

출처 : https://www.npmjs.com/package/serialport


명령어 : npm install serialport(@version) --save


serialport를 다운받는 가장 좋은 방법은 https://github.com/nodesource/distributions#installation-instructions 를 참고하는 것이다.


라즈베리파이에서 apt-get으로 다운 받은 node.js 는 0.10.x 버전이기 때문에 serialport@1.7.4를 다운 받아야한다.


그리고 시리얼 통신시 중요한 parser이다.

아두이노에서 서버로 여러개의 센서 데이터 값을 받아올때 값이 같이안오고 따로전송이 된다.

이를 막기위한 방법으로 parser를 사용하는 방법이 있더라.

1
2
3
4
5
var SerialPort = require('serialport');
 
var port = new SerialPort('/dev/tty-usbserial1', {
  parser: SerialPort.parsers.readline('\n')
});
cs


서버에서 클라이언크단으로 데이터를 전송하는 법은 이런식이다.

1
2
3
4
5
function writeAndDrain (data, callback) {
  sp.write(data, function () {
    sp.drain(callback);
  });
}
cs


'Programming > Node.JS' 카테고리의 다른 글

Event개념 이해  (0) 2016.09.03
기본 내장 모듈  (0) 2016.09.03
전역 객체에 대하여  (0) 2016.09.03
node.js 특징  (0) 2016.09.03
Node.js 에서 JSON 사용하기  (0) 2016.08.27

0. 사용용도

 - 초기 설정값이나 자동로그인 여부, 진동 유무등 간단한 값을 저장하고 싶을때 사용

 - 어플리케이션 파일형태로 데이터를 저장

 - 어플리케이션이 삭제 전까지 보존

 - 간단하게 Key, Value 형태의 파일로 저장되므로 앱이 종료되어도 기억

 - 불러오려는 Key값이 없는 경우 공백문자열을 return.


1. 데이터 얻기

 - getPreferences(int mode)

하나의 액티비티에서만 사용하는 SharedPreferences를 생성

생성되는 SharedPreferences 파일은 해당 액티비티이름으로 생성

하나의 액티비티에서만 사용할 수 있지만 getSharedPreferences()를 사용하면 다른 액티비티에서도 사용가능


 - getSharedPreferences(String name, int mode)

특정 이름을 가진 SharedPreferences를 생성

주로 애플리케이션 전체에서 사용


2. 데이터 저장

먼저 데이터를 기록하기 위해 SharedPreferences.Editor 인스턴스를 얻어야 함

1
2
3
4
5
6
7
8
9
SharedPreferences test = getSharedPreferences("test", MODE_PRIVATE);
 
SharedPreferences.Editor editor = test.edit();
 
editor.putString("ID", Strid);
 
editor.putString("Password", Strpw);
 
editor.commit(); //완료한다.
cs


저장 가능한 데이터 타입

Boolean / String / Int / Float / Long



※ MODE  설정파일을 불러올때의 모드


- MODE_PRIVATE : 자기 app 내에서 사용할때, 기본값


- MODE_WORLD_READABLE : 다른 app에서 읽기 가능


- MODE_WORLD_WRITEABLE : 다른 app에서 쓰기 가능



3. 데이터 불러오기

데이터를 불러오기 위해서 getInt()나 getString() 메서드를 사용

getInt(KEY, VALUE)

첫번째 인자는 데이터의 키, 두번째 인자는 해당값이 없을경우 반환할 값을 넣어준다.

1
2
3
SharedPreferences test = getSharedPreferences("test", MODE_PRIVATE);
 
int firstData = test.getInt("ID", 0);
cs


4. 데이터 삭제

1) 특정 데이터 삭제

1
2
3
4
5
6
7
SharedPreferences test = getSharedPreferences("test", MODE_PRIVATE);
 
SharedPreferences.Editor editor = test.edit();
 
editor.remove("test");
 
editor.commit();
cs

2) 모든 데이터 삭제

1
2
3
4
5
6
7
SharedPreferences test = getSharedPreferences("test", MODE_PRIVATE);
 
SharedPreferences.Editor editor = test.edit();
 
editor.clear();
 
editor.commit();
cs

5. Context와 함께 사용


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
// 선언
public class PreferencesUtil{
 
    public static void setPreferences(Context context, String key, String value) {
        SharedPreferences pref = context.getSharedPreferences("pref", context.MODE_PRIVATE);
        SharedPreferences.Editor editor = pref.edit();
        editor.putString(key, value);
        editor.commit();
    }
 
    public static String getPreferences(Context context, String key) {
        SharedPreferences pref = context.getSharedPreferences("pref", context.MODE_PRIVATE);
        pref = context.getSharedPreferences("pref", context.MODE_PRIVATE);
        return pref.getString(key, "");
    }
}
 
 
//저장
PreferencesUtil.setPreferences(context, "ID", Strid);
PreferencesUtil.setPreferences(context, "PW", StrPw);
 
//불러오기
String ID= PreferencesUtil.getPreferences(context, "ID");
String Pw= PreferencesUtil.getPreferences(context, "Pw");
 
Log.d("PreferencesUtil""ID: " + ID);
Log.d("PreferencesUtil""Pw: " + Pw);
cs


'Programming > Android' 카테고리의 다른 글

ProgressDialog 와 Toast  (0) 2016.08.25
HttpURLConnection  (0) 2016.08.25
Context  (0) 2016.08.24
Activity 생명주기  (0) 2016.08.24
Fragment  (0) 2016.08.24


Context 개념

- 지금 현재 사용되고 있는 어플리케이션(액티비티)에 대한 포괄적인 정보를 지니고있는 객체

- Application Context는 안드로이드 어플리케이션의 핵심 기능을 위한 중심부

- Context는 여러 Activity 인스턴스들 간에 리소스를 공유하거나 설정등에 접근하기 위해 사용

- 현재의 프로세서에서 Application Context는 getApplicationContext() 메서드를 사용하여 얻음

- Activity는 Context 클래스를 상속 확장한 것

1
Context context = getApplicationContext(); 

cs


어플리케이션 리소스 얻기

Context의 getResources() 메서드를 이용하여 어플리케이션의 리소스를 얻을 수 있음

1
String greeting = getResources().getString(R.string.hello); 

cs

 

Application Preferences 이용하기

Context의 getSharedPreferences 메서드를 이용하면 SharedPreferences 클래스를 사용

SharedPreferences 클래스는 어플리케이션의 환결설정과 같은 간단한 데이터들을 저장.

아래는 SharedPreferences를 이용하여 사용자 이름과 성별을 저장하는 간단한 예제 입니다.

1
2
3
4
5
6
7
8
9
SharedPreferences settings = getSharedPreferences(“User”, MODE_PRIVATE);   
 
SharedPreferences.Editor prefEditor = settings.edit();   
  
prefEditor.putString(“UserName”, “Spunky”);   
  
prefEditor.putString(“SEX”, "Man");   
  
prefEditor.commit();  

cs

preference 세팅을 얻으려면 아래와 같이 해줄 수 있습니다.

1
2
3
4
SharedPreferences settings = getSharedPreferences(“User”, MODE_PRIVATE);   
  
String userName = settings.getString(“UserName”, “androidnote (Default)”);   
 

cs


Contexts를 이용하여 다른 어플리케이션의 기능을 접근하기

- Activity 실행

- System-level 서비스 프로바이더 요청 ( ex : location service )

- Application의 파일, 폴더, 데이터베이스 다루기

- Application permission 검사





출처 :
http://androidnote.tistory.com/entry/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-Context%EB%9E%80-%EA%B8%B0%EB%8A%A5%EA%B3%BC-%EC%82%AC%EC%9A%A9-%EB%B0%A9%EB%B2%95


'Programming > Android' 카테고리의 다른 글

HttpURLConnection  (0) 2016.08.25
SharedPreferences  (0) 2016.08.24
Activity 생명주기  (0) 2016.08.24
Fragment  (0) 2016.08.24
permission  (0) 2016.08.24

액티비티는 다음 그림과 같은 생명주기(LifeCycle)를 가지고 있다. 이 생명주기에 따라 적절한 메소드가 호출되므로 이를 숙지해서 액티비티를 작성해야 한다. 물론 다음 내용은 안드로이드 개발을 어느 정도 해봐야 감이 오는 부분이니 지금은 잠시 눈요기만 하고 나중에 다시 살펴보기 바란다.




액티비티 생명주기는 onCreate() -> onStart() -> onResume() -> onPause() -> onStop() -> onDestory()순으로 실행되며, 경우에 따라서 onRestart() 메소드가 호출되기도 한다. 이에 대한 자세한 설명은 다음의 액티비티 생명주기 표를 참고하기 바란다.


API 액티비티 생명주기

메소드

설명

다음 메소드

onCreate()

액티비티가 생성될 때 호출되며 사용자 인터페이스 초기화에 사용됨.

onStart()

onRestart()

액티비티가 멈췄다가 다시 시작되기 바로 전에 호출됨.

onStart()

onStart()

액티비티가 사용자에게 보여지기 바로 직전에 호출됨.

onResume() 또는 onStop()

onResume()

액티비티가 사용자와 상호작용하기 바로 전에 호출됨.

onPause()

onPause()

다른 액티비티가 보여질 때 호출됨. 데이터 저장, 스레드 중지 등의 처리를 하기에 적당한 메소드.

onResume() 또는 onStop()

onStop()

액티비티가 더이상 사용자에게 보여지지 않을 때 호출됨. 메모리가 부족할 경우에는 onStop() 메소드가 호출되지 않을 수도 있음.

onRestart() 또는 onDestroy()

onDestroy()

액티비티가 소멸될 때 호출됨. finish() 메소드가 호출되거나 시스템이 메모리 확보를 위해 액티비티를 제거할 때 호출됨.

없음

※ onStop(), onDestory()는 호출되지 않을 수도 있음


출처 : https://kairo96.gitbooks.io/android/content/ch2.4.1.html

'Programming > Android' 카테고리의 다른 글

SharedPreferences  (0) 2016.08.24
Context  (0) 2016.08.24
Fragment  (0) 2016.08.24
permission  (0) 2016.08.24
Httppost 전송하기  (0) 2016.08.24

프래그먼트

조각(fragment)

액티비티보다 더 작은 화면 단위를 정의하고 프래그먼트를 조합하여 완성된 화면표현

액티비티에 비해 동적이고 유연한 화면 구현 가능

자신만의 레이아웃, 동작, 생명주기를 가진 독립적인 모듈

FragmentActivity가 아니기 때문에 context를 가지지 않는다.



생명주기



1. onAttach(Activity activity)

FragmentActivity에 붙을때 호출 된다.

Fragment는 혼자 사용될수 없고 항상 액티비디의 한부분으로 사용된다.

* activity Host Activity

 

2. onCreate(Bundle savedInstanceState)

Fragment가 생성될 때 호출된다.

초기화할 것이 있으면 사용(없으면 생략가능)

ActivityonCreate()와 비슷하나, UI 관련 작업은 할 수 없다.

이 단계에서는 호스트 액티비티도 초기화중이라서 액티비티 컨트롤을 안정하게 참조할 수 없다.

만약 참조하고싶으면, onActivityCreated 콜백을 사용한다.

* savedInstanceState 프래그먼트가 재생성될때의 이전상태이며, 이 값을 참조하여 이전상태로 복구한다.

 

3. onCreateView

(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)

Fragment 와 관련 되는 View 계층을 inflater을하여 View작업을 하여 리턴합니다.

*** UI관련 작업을 하는 부분

View root = inflater.inflate(R.layout.conterfragment, container, false)

Button btn = (Button)root.findViewById(R.id.btn)

 

View view = inflater.inflate(R.layout.fragment, container, false);

return view;

* inflater xml파일을 전달함, 

ex) 같은 xml이라도 setContentview를 사용하면 액티비티에, inflater를 사용하면 프래그먼트.

    * cotainer 프래그먼트가 배치될 액티비티의 부모 뷰, 액티비티의 이 위치에 프래그먼트가 생성, 배치된다.

 

4. onActivityCreated()

Activity에서 Fragment를 모두 생성하고 난다음 호출 된다.

초기화 완료된 상태

 

- UI변경작업이 가능

5. onStart()

Fragment가 화면에 표시될때 호출된다. 사용자의 Action과 상호 작용 할 수 없다.

 

6. onResume()

Fragment가 화면에 완전히 그렸으며, 사용자의 Action과 상호 작용이 가능하다.

 

다른 Fragment가 추가 되었을때

1. onPause()

Fragment가 사용자의 Action과 상호 작용을 중지한다.

 

2. onStop()

Fragment가 화면에서 더이상 보여지지 않게 되며, Fragment기능이 중지 되었을때 호출 된다.

3. onDestoryView()

View 리소스를 해제 할수 있도록 호출된다.

backstack을 사용 했다면 Fragment를 다시 돌아 갈때 onCreateView()가 호출 된다.

 

Fragmentreplace or backward로 제거되는 경우

 

4. onDestory()

Fragment상태를 완전히 종료 할 수 있도록 호출 한다.

 

5. onDetach()

FragmentActivity와 연결이 완전히 끊기기 직전에 호출 된다.

 

6. onSaveInstanceState(Bundle outState)

생명주기 메서드는 아니지만, onPause()와 함꼐 호출되며 임시정보를 저장한다.

 

상태저장

스마트폰 회전시 데이테 손실됨 이유: 화명 방향이 바뀌면 액티비티가 새로 생성되고, 그에따라 소속된 프래그먼트도 새로 생성된다. 정보를 저장해 놓지 않았기 때문에, 초기값으로 리셋된다.

 

onSaveInstanceState(Bundle outState){

super.onSaveInstanceState(outState);

 

TextView TextCounter = (TextView)getview().findViewById(R.id.txtconter);

    int a = Integer.parseInt(TextCounter.getText().toString());

    outState.putInt("Counter", a);

}

 

장비의 설정상태변경, 화면방향변경 등의 변화에 의해 프래그먼트가 정지할 때, 변경된 값을 Bundle에 저장해 놓은 onSaveInstanceState 메서드가 호출된다.

저장된 번들은 onCreate, onCreateView, onActivityCreated콜백의 savedInstanceState 인수로 전달되므로 언제든지 복구에 사용 할 수 있다.

if(onSaveInstanceState == null) // 변경된 값이 없을 때,

 

 

프래그먼트 관리자

레이아웃과 마찬가지로 프래그먼트도 실행중에 편집이 가능하다. 필요할 때 추가하거나 다 사용한후 제거 할 수 있으며, 다른 프래그먼트로 교체 할 수도 있다.


또한 교체하기위해서는 액티비티내에 Layout을 지정해주고 거기다가 replace, add 등을 해야한다.


Activity.getFragmentManager()

Fragment.getFragmentManager()

findFragmentByid(int id), findFragmentByTag(String tag) : 프래그먼트 검색

 

 

/*

When you are using android.support.v4.app.FragmentManager then you should use getSupportFragmentManager() and if you are using android.app.FragmentManager then use getFragmentManager()

*/

switch(fragmentId){

 

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
31
32
case FRAGMENT_ADD:
 
getSupportFragmentManager()
    .beginTransaction()
    .add(R.id.fl_activity_main, dashboardFragment).commit();
break;
 
case FRAGMENT_REPLACE:
getSupportFragmentManager()
    .beginTransaction()
    .replace(R.id.fl_activity_main, patientListFragment).commit();
break;
 
case FRAGMENT_REMOVE:
getSupportFragmentManager()
    .beginTransaction()
    .remove(locationFragement).commit();
break;
 
 
case FRAGMENT_SHOW:
getSupportFragmentManager()
    .beginTransaction()
    .show(scheduleFragement).commit();
break;
 
 
case FRAGMENT_HIDE:
getSupportFragmentManager()
    .beginTransaction()
    .hide(R.id.fl_activity_main, boundaryFragement).commit();
break;
cs

 

인수전달

프래그먼트는 액티비티의 작업 일부를 전담하는 서브 모듈이다. 메서드가 작업 거리를 인수로 전달받는 것과 마찬가지로 프래그먼트로 액티비디의 요구에 따라 조금씩 다르게 동작하기 위해 인수를 받아 들인다. 이때 프래그먼트는 인수 저장을 위해 argument를 사용한다.

void setArguments(Bundle args);

Bundle args = new Bundle();

args.putInt(“start”, start);

fragment.setArguments(args);

 

Bundle getArguments();

Bundle args = getArguments();

 

백스택

여러개의 프래그 먼트로 구성된 액티비티는 실행중인 프래그먼트를 스택으로 저장한다. 또한 자동으로 관리해주는 액티비티와 달리 명시적인 요구가 있을때만 저장한다. 현재 상태를 스택에 저장하려면, 트랜잭션의 다음 메서드를 호출한다.

addToBackStack(String name);

스택에 프래그먼트를 저장한 상태에서 사용자가 Back버튼을 누르면 액티비티가 종료되는 것이 아니라 스택의 최상위에 있는 프래그먼트를 꺼내 원래 상태로 복귀한다.

 

Fragment 종류

- DialogFragment : 떠다니는 다이얼로그를 보여주는 Fragment. Fragment는 백스택에 넣어둘 수 있기 때문에 사용자가 다시 Fragment로 복귀하고자 할 때에 Activity에 기본적으로 들어있는 다이얼로그 대신에 사용 할 수 있는 좋은 대체제이다.

 

- ListFragment : Adapter를 통해서 List를 보여주는 FragmentListActivity와 비슷하고, list view에서 다룰 수 있는 onListItemClick()과 같은 콜백 함수들도 제공한다.

 

- PreferenceFragment: Preference 객체들을 목록으로 보여주는 PreferenceActivity와 비슷하며, 앱의 Settings를 만들 때에 유용하게 사용할 수 있다.

'Programming > Android' 카테고리의 다른 글

SharedPreferences  (0) 2016.08.24
Context  (0) 2016.08.24
Activity 생명주기  (0) 2016.08.24
permission  (0) 2016.08.24
Httppost 전송하기  (0) 2016.08.24

1. 퍼미션 위치

 - 퍼미션은 <application> 전에 쓴다 


2. 사용법 

 <uses-permission android:name="android.permission./*HERE!*/"/>

 


3. 퍼미션 종류

ACCESS_CHECKIN_PROPERTIES

체크인데이터베이스의_속성테이블로_액세스

ACCESS_COARSE_LOCATION

코스_로케이션_액세스_(Cell-ID/WiFi)

ACCESS_FINE_LOCATION

파인로케이션_액세스(GPS)

ACCESS_LOCATION_EXTRA_COMMANDS

로케이션_옵션_커맨드_액세스

ACCESS_MOCK_LOCATION

_로케이션_프로바이더_생성_(테스트용)

ACCESS_NETWORK_STATE

네트워크_상태_접근

ACCESS_SURFACE_FLINGER

서피스_플링거_접근

ACCESS_WIFI_STATE

WiFi상태_접근

ADD_SYSTEM_SERVICE

시스템서비스_추가

BATTERY_STATS

배터리_상태

BLUETOOTH

블루투스

BLUETOOTH_ADMIN

블루투스_어드민

BRICK

디바이스_실효성_지정

BROADCAST_PACKAGE_REMOVED

제거된_패키지에_대한_notification_브로드캐스트

BROADCAST_SMS

SMS_대한_브로드캐스트

BROADCAST_STICKY

인텐트_브로드캐스트

CALL_PHONE

통화

CALL_PRIVILEGED

통화(긴급전화_포함)

CAMERA

카메라

CHANGE_COMPONENT_ENABLED_STATE

컴포넌트의_실효성_변경

CHANGE_CONFIGURATION

컨피그_변경

CHANGE_NETWORK_STATE

통신상태_변경

CHANGE_WIFI_STATE

WiFi상태_변경

CLEAR_APP_CACHE

어플리케이션_캐시_클리어

CLEAR_APP_USER_DATA

어플리케이션의_유저데이터_클리어

CONTROL_LOCATION_UPDATES

위치정보_갱신

DELETE_CACHE_FILES

캐시파일_제거

DELETE_PACKAGES

패키지_제거

DEVICE_POWER

전원상태에_대한_로우레벨_접근

DIAGNOSTIC

진단리소스_읽고쓰기

DISABLE_KEYGUARD

_가드_끄기_DUMP_?

EXPAND_STATUS_BAR

상태표시줄_확장

FACTORY_TEST

팩토리_테스트

FLASHLIGHT

플래시라이트

FORCE_BACK

포스백

GET_ACCOUNTS

어카운트_획득

GET_PACKAGE_SIZE

패키지_획득

GET_TASKS

태스크_획득

HARDWARE_TEST

하드웨어테스트

INJECT_EVENTS

유저이벤트_/트랙볼

INSTALL_PACKAGES

패키지_인스톨

INTERNAL_SYSTEM_WINDOW

내부_시스템윈도_활용

INTERNET

인터넷

MANAGE_APP_TOKENS

어플리케이션_토큰관리

MASTER_CLEAR

마스터_클리어

MODIFY_AUDIO_SETTINGS

오디오설정_편집

MODIFY_PHONE_STATE

전화상태_편집

MOUNT_UNMOUNT_FILESYSTEMS

파일시스템_편집

PERSISTENT_ACTIVITY

액티비티_지속

PROCESS_OUTGOING_CALLS

전화_발신처리_접근

READ_CALENDAR

캘린더_읽어오기

READ_CONTACTS

주소록_읽어오기

READ_FRAME_BUFFER

프레임버퍼_읽어오기

READ_INPUT_STATE

입력상태_읽어오기

READ_LOGS

로그_읽어오기

READ_OWNER_DATA

owner_data읽어오기

READ_PHONE_STATE

통화상태_읽어오기_READ_SMS_SMS읽어오기

READ_SYNC_SETTINGS

동기설정_읽어오기

READ_SYNC_STATS

동기상태_읽어오기

REBOOT

reboot

RECEIVE_BOOT_COMPLETED

boot완료

RECEIVE_MMS

MMS수신

RECEIVE_SMS

SMS수신

RECEIVE_WAP_PUSH

WAP수신

RECORD_AUDIO

오디오_수신

REORDER_TASKS

태스크_Z오더

RESTART_PACKAGES

패키지_리스타트

SEND_SMS

SMS송신

SET_ACTIVITY_WATCHER

액티비티_왓쳐지정

SET_ALWAYS_FINISH

액티비티_전체_종료

SET_ANIMATION_SCALE

스케일_애니메이션_지정

SET_DEBUG_APP

디버그어플리케이션_지정

SET_ORIENTATION

스크린_로테이션지정

SET_PREFERRED_APPLICATIONS

자주_사용하는_어플리케이션_지정

SET_PROCESS_FOREGROUND

포어그라운드_처리지정

SET_PROCESS_LIMIT

제한처리_지정

SET_TIME_ZONE

타임존_지정

SET_WALLPAPER

배경화면_지정

SET_WALLPAPER_HINTS

배경화면_힌트_지정

SIGNAL_PERSISTENT_PROCESSES

지속처리_시그널_지정

STATUS_BAR

상태표시줄_지정

SUBSCRIBED_FEEDS_READ

서브스트립드_피즈_읽어오기

SUBSCRIBED_FEEDS_WRITE

서브스트립드_피즈_쓰기

SYSTEM_ALERT_WINDOW

알림_윈도우

VIBRATE

진동

WAKE_LOCK

알람

WRITE_APN_SETTINGS

APN설정_쓰기

WRITE_CALENDAR

캘린더_쓰기

WRITE_CONTACTS

주소록_쓰기

WRITE_GSERVICES

G서비스_쓰기

WRITE_OWNER_DATA

owner_data쓰기

WRITE_SETTINGS

설정_쓰기

WRITE_SMS

SMS쓰기

WRITE_SYNC_SETTINGS

동기설정_쓰기



출처 : http://iyeti.kr/673


'Programming > Android' 카테고리의 다른 글

SharedPreferences  (0) 2016.08.24
Context  (0) 2016.08.24
Activity 생명주기  (0) 2016.08.24
Fragment  (0) 2016.08.24
Httppost 전송하기  (0) 2016.08.24

안드로이드 6.0이 되면서 더이상 Apache Http를 지원하지 않게 되었다.

이제 HttpURLconnection사용을 권장하고 있다.

그래서 이제 httppost를 사용하려면 다음과 받은 방법을 사용하여서 apache http 를 설치해야한다.


/app/gradle 에 useLibarry 'org.apche.http.legacy'를 추가시킨다.

android {

useLibrary 'org.apache.http.legacy'

그러면 http post를 사용할 수있다.


INTERNET 퍼미션!


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
        try {
 
            URI url = new URI(params[0]);
            String data = params[1];
 
            DefaultHttpClient httpClient = new DefaultHttpClient();
            HttpPost httpPost = new HttpPost();
            httpPost.setURI(url);
 
            StringEntity entity = new StringEntity(data, HTTP.UTF_8);
            httpPost.setEntity(entity);
 
            HttpResponse httpResponse = httpClient.execute(httpPost);
 
            responseString = EntityUtils.toString(httpResponse.getEntity(), HTTP.UTF_8);
 
 
 
        } catch (Exception e) {
            e.printStackTrace();
        }
 
        return responseString;
    }
cs


Async를 사용하여 json 형식으로 데이터를 전송하고, 데이터를 받는다.


'Programming > Android' 카테고리의 다른 글

SharedPreferences  (0) 2016.08.24
Context  (0) 2016.08.24
Activity 생명주기  (0) 2016.08.24
Fragment  (0) 2016.08.24
permission  (0) 2016.08.24

+ Recent posts