안드로이드 GCM 설정

Android 2016. 2. 17. 22:09

구글 GCM 서버를 사용하기 위해서는 개발자 콘솔에서 등록을 해야 한다.


1. 개발자 콘솔 : https://console.developers.google.com


개발자 아이디로 로그인하면 대시보드로 들어간다.


우리가 필요한 것은 ID와 서버키 값이다.



2. 프로젝트 생성


새 프로젝트를 생성한다.


프로젝트 생성 후 숫자로 된 ID가 만들어진다.



3. API사용 설정 및 관리


해당 프로젝트에서 API사용 설정 및 관리로 들어간다.


아래와 같은 API관리자 화면으로 들어간다.





GCM을 사용하려면 모바일 API 항목 중에 Google Cloud Messaging 으로 들어간다.


사용함으로 설정한다. 아래와 같은 화면이 된다.






4. 사용자 인증 정보 설정


좌측 탭에서 사용자 인증 정보 설정을 클릭하여 아래 화면으로 간다.





Create credentials 버튼을 클릭하여 API키를 클릭한다.


새 키 만들기에서 서버 키 를 클릭한다.






아래 생성 버튼을 클릭한다.




아래와 같이 서버 키 1 이 만들어졌다






GCM Push 를 보내기 위한 설정 등록이 완료되었다.


해당 프로젝트에서는 프로젝트ID가 사용되고. Push를 보낼 때 서버키가 사용된다.



GCM Push를 보내는 방법은 블로그내 검색하면 나온다.



끝.













'Android' 카테고리의 다른 글

and gem error notregistered  (0) 2016.02.17
이클립스에서 LogCat 보기  (0) 2016.02.05
Android SDK] Error when loading the SDK. 에러  (0) 2016.02.04
android SDK for Eclipse Mars in Mac  (0) 2016.02.04
EditText 포커스 여부 확인  (0) 2016.02.02
블로그 이미지

엘로드넷

,

GCM환경설정이 완벽한데 전송시 error:NotRegistered 라고 뜬다면..


말 그대로 해당 기기가 GCM 서버에 등록이 되어 있지 않다는 것이다.


GCM등록을 하기 전에 개발단계에서 기기에 미리 설치된 기기정보에게 GCM을 보내려고 할 경우에 발생한다.


해결방법은.


해당 기기정보를 자체 디비에서 삭제한다.

앱을 다시 설치한다.


 

'Android' 카테고리의 다른 글

안드로이드 GCM 설정  (0) 2016.02.17
이클립스에서 LogCat 보기  (0) 2016.02.05
Android SDK] Error when loading the SDK. 에러  (0) 2016.02.04
android SDK for Eclipse Mars in Mac  (0) 2016.02.04
EditText 포커스 여부 확인  (0) 2016.02.02
블로그 이미지

엘로드넷

,

Window > Show View > Other > Android > LogCat












'Android' 카테고리의 다른 글

안드로이드 GCM 설정  (0) 2016.02.17
and gem error notregistered  (0) 2016.02.17
Android SDK] Error when loading the SDK. 에러  (0) 2016.02.04
android SDK for Eclipse Mars in Mac  (0) 2016.02.04
EditText 포커스 여부 확인  (0) 2016.02.02
블로그 이미지

엘로드넷

,
이클립스 시작시나 콘솔에 아래와 같은 에러가 나고 앱이 실행되지 않을 때.




1. Android SDK Manager 창을 연다


Android 6.0 (API 23)과 

Android 5.1.1 (API 22)에서 


Android Wear ARM EABI v7a System Iamge 와

Android Wear Intel x86 Atom System Image 를 체크하여 언인스톨 한다.













'Android' 카테고리의 다른 글

and gem error notregistered  (0) 2016.02.17
이클립스에서 LogCat 보기  (0) 2016.02.05
android SDK for Eclipse Mars in Mac  (0) 2016.02.04
EditText 포커스 여부 확인  (0) 2016.02.02
LinearLayout 레이아웃 높이 조정  (0) 2016.02.02
블로그 이미지

엘로드넷

,

Eclipse Mars 에 ADT설치 (맥버전)



1. 구글에서 android adk 로 검색하면 나오는 결과에서 첫번째를 클릭하면 아래와 같은 android 개발자 사이트로 이동한다.





2. 아래로 스크롤 하여 기타 다운로드 옵션으로 간다.






Mac OS X 용을 다운받는다.


3. 다운 받은 곳에서 압축을 풀면 android-sdk-macosx 폴더가 만들어진다. 

폴더 안에 들어간다.


Android Sdk Manager 를 실행하기 위해 

tools 폴더 아래에 android 를 실행할 것이다.





android  를 더블클릭하면 바로 실행이 안되므로 컨트롤 키를 누른체 더블 클릭하여 실행한다.


정상적으로 실행이 되면 아래와 같은 창이 열린다.






필요한 것들을 지금 다운로드 해도 되고 나중에 이클립스에서 호출하여 다운로드 해도 된다.












4. 이클립스 사이트로 가서 Eclipse Mars (4.5)를 다운받는다.


Eclipse IDE for Java EE Developers 용을 받는다. 273메가짜리.


다운받은 후 실행한다.



5. Help > Install New Software 로 간다.


Work with : 에 아래 주소를 입력한다.


https://dl-ssl.google.com/android/eclipse/






Developer Tools 가 생기고 체크 하여 설치한다.









중간에 경고문이 나오면 수락해 준다.


설치를 반영하기 위해 이클립스를 재시작 해준다.






만약 설치중 에러가 난다면..


Help > Installation Details 를 연다.





Android 로 시작하는 것들을 다 선택하고 아래 Uninstall...버튼을 눌러 삭제한다.


Uninstall 완료 후 이클립스를 새로 시작하여 위 5번의 설치단계를 다시 한다.


설치 후 이클립스를 재시작 한다.




6. Window > Android SDK Manager 메뉴가 있는지 확인해 본다.





보이지 않는다.


좀 전에 Developer Tools 를 분명히 설치했으므로 숨어있다.


아래와 같이 하여 보이게 한다.


Window > Perspective > Customize Perspective...로 간다.






아래와 같은 창이 열리고 Android SDK and AVD Magager가 체크 해제되어 있다.





체크를 하니 아래와 같은 에러가 나타나고 되지 않는다.





내용인즉 action sets에서 보이게 안해서 그렇다는 것이다.


Action Set Availability 탭을 클릭한다.





희미하게 되어 있는 Android SDK and AVD Manager를 체크하자.





다시 Tool Bar Visibility 탭으로 온다.


아래와 같이 체크되어 있을 것이다.(안되어 있다면 체크하자)





OK하고 나와서 다시 상단 Window 를 클릭해 보자.




Android SDK Manager 와 Android Virtual Device Manager (AVD Manager)가 보일 것이다.



Android SDK Manager 를 클릭하면 아까 보았던 창이 열릴 것이다.






이클립스 환경설으로 가서 Android 탭을 클릭해 보자





SDK Location 이 다운받은 경로와 일치하는지 확인해 본다.


그림상  Android API Level19와 23만 설치가 되어 있다.


다른 것들은 Android SDK Manager 에서 체크하여 설치하면 나타날 것이다.





Eclipse Mars 에서 Android 를 개발하기 위한 환경설정을 해 보았다.


Eclipse Juno 보다는 조금 더 빨라진 느낌이다.




끝.








































블로그 이미지

엘로드넷

,

//검색상자 포커스 확인

EditText txt_search = (EditText)findViewById(R.id.txt_search);

txt_search.setOnFocusChangeListener(new OnFocusChangeListener() {

    public void onFocusChange(View v, boolean gainFocus) {

     //포커스가 주어졌을 때

     if (gainFocus) {

      //to do

    } 

     //포커스를 잃었을 때

     else {

  

    //키보드 내리기

     InputMethodManager immhide = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE);

     immhide.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0);    

   

     }

    }

});

블로그 이미지

엘로드넷

,

Display display = getWindowManager().getDefaultDisplay();

  LinearLayout search_layout = (LinearLayout)findViewById(R.id.search_layout);

  int width=display.getWidth();//가로는 스크린 사이즈

  int height=130;

  

LinearLayout.LayoutParams parms = new LinearLayout.LayoutParams(width,height);

  search_layout.setLayoutParams(parts);




블로그 이미지

엘로드넷

,

아래 빨간색으로 표시된 부분 확인





public class JSONParser {


static InputStream is = null;

static JSONObject jObj = null;

static String json = "";

static String jsonText = "";


public JSONParser() {


}



public JSONObject makeHttpRequest(String url, String method,

List<NameValuePair> params) {



try {

if(method == "POST"){


DefaultHttpClient httpClient = new DefaultHttpClient();

HttpPost httpPost = new HttpPost(url);

httpPost.setEntity(new UrlEncodedFormEntity(params, "utf-8"));


HttpResponse httpResponse = httpClient.execute(httpPost);

HttpEntity httpEntity = httpResponse.getEntity();

is = httpEntity.getContent();

}else if(method == "GET"){

DefaultHttpClient httpClient = new DefaultHttpClient();

String paramString = URLEncodedUtils.format(params, "utf-8");

url += "?" + paramString;

HttpGet httpGet = new HttpGet(url);


HttpResponse httpResponse = httpClient.execute(httpGet);

HttpEntity httpEntity = httpResponse.getEntity();

    int i = httpResponse.getStatusLine().getStatusCode();


            if (httpEntity != null) {


            String jsonText = EntityUtils.toString(httpEntity, HTTP.UTF_8);


           

            }

is = httpEntity.getContent();

}


} catch (UnsupportedEncodingException e) {

e.printStackTrace();

} catch (ClientProtocolException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}


try {

BufferedReader reader = new BufferedReader(new InputStreamReader(is, "iso-8859-1"), 8);

StringBuilder sb = new StringBuilder();

String line = null;

while ((line = reader.readLine()) != null) {

sb.append(line + "\n");

}

is.close();

json = sb.toString();

} catch (Exception e) {

Log.e("Buffer Error", "Error converting result " + e.toString());

}


try {

jObj = new JSONObject(json);

} catch (JSONException e) {

Log.e("JSON Parser", "Error parsing data " + e.toString());

}


return jObj;


}

}



블로그 이미지

엘로드넷

,

1. 첫번째 방법

AndroidManifest.xml 파일에 아래와 같이 설정


<activity android:name=".Activity"

android:label="@string/app_name"

android:screenOrientation="portrait" />





2. 두번째 방법

super.onCreate(savedInstanceState);

setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 

setContentView(R.layout.activity_indexviewpager);


블로그 이미지

엘로드넷

,

AndroidManifest.xml 파일 수정


아래 versionCode와 versionName 을 기존 출시한 숫자보다 높여서 수정


<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="com.kimhae.net.ellord"

    android:versionCode="1"

    android:versionName="1.0" >


아래처럼


<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="com.kimhae.net.ellord"

    android:versionCode="2"

    android:versionName="1.1" >



블로그 이미지

엘로드넷

,