본문 바로가기
반응형

Android49

Timer Timer import java.util.Timer; import java.util.TimerTask; TimerTask tmrTask; Timer tmrNetworkStatus; //timer task tmrTask = new TimerTask() { @Override public void run() { Handler mHandler = new Handler(Looper.getMainLooper()); //원래 스레드에 있는 것 이용할 때 mHandler.postDelayed(new Runnable() { @Override public void run() { } }, 0); } }; //timer run tmrNetworkStatus = new Timer(); tmrNetworkStatus.schedu.. 2020. 10. 14.
FCM(Firebase Cloud Messaging) 메세지 받기 FCM에 대해서 자세한 설명은 생략. 이미 어느정도 이해하고 왔을 것으로 판단됨. 소스만 고대로 올려 놓음. 마시멜로우 기준으로 코딩. 그 이외 버전에서는 작동 안될 수 있음. MainActivity package com.norang.firebasesample; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.widget.TextView; import android.widget.Toast; import com.google.android.gms.tasks.OnCompleteListener.. 2020. 9. 29.
안드로이드 개발시 쓰는 log 다음과 같은 종류의 로그가 있음. static int Log.d (String tag, String msg [, Throwable tr]) d 는 debug용 파란색 static int Log.e (String tag, String msg [, Throwable tr]) e 는 error용 빨간색 static int Log.w (String tag, String msg [, Throwable tr]) w 는 warning용 주황색 static int Log.i (String tag, String msg [, Throwable tr]) i 는 information용 초록색 static int Log.v (String tag, String msg [, Throwable tr]) v 는 verbose(많은 정.. 2020. 9. 3.
runOnUiThread 이 동네 용어는 모르겠음.... .net에서의 begininvoke랑 같은 역할을 하는 것 같음. 크로스스레드로 인한 문제를 해결하기 위해서 사용해야 됨. try{ JSONObject jObj = (JSONObject)args[0]; //비동기로 호출되기 때문에 메인 스레드에서 UI변경을 위해서 사용. //.net에서의 beginInvoke에 해당됨. comment = jObj.getString("comment"); new Thread(new Runnable() { @Override public void run() { runOnUiThread(new Runnable(){ @Override public void run() { txtLog.append(comment); } }); } }).start(); }.. 2020. 8. 18.
안드로이드 버전 안드로이드 버전... 버전에 따라 안 돌아가고... 지원 안되는 것이 많고... 5이하버전은 버리는 것으로... 버전 2.3: 진저브레드 (GingerBread) 버전 3.0/3.1/3.2: 허니콤 (Honeycomb) 버전 4.0: 아이스크림 샌드위치 (Ice Cream Sandwich) 버전 4.1/4.2/4.3: 젤리빈 (Jelly Bean) 버전 4.4: 킷캣 (KitKat) 버전 5.0/ 5.1: 롤리팝 (Lollipop) 버전 6.0/ 6.0.1: 마시멜로 (Marshmallow) 버전 7.0/ 7.1: 누가 (Nougat) 버전 8.0/ 8.1: 오레오 (Oreo) 버전 9: 파이 (Pie) 버전 10: 안드로이드 10 (Queen Cake) 버전 11: 안드로이드 11 (Red Velvet.. 2020. 8. 18.
android sleep 안드로이드.. sleep //main thread sleep(1000 * 10); //스레드 안에서 Thread.sleep(1000 * 10); Handler의 postDelayed Handler handler = new Handler(); handler.postDelayed(new Runnable() { public void run() { //TO DO } }, 1000 * 10); 2020. 8. 18.
안드로이드 해시키 코드로 조회 해시 키 조회 하는 코드. logcat에 다음과 같이 로그에 키가 찍힘. 10-20 11:17:48.710 26547-26547/com.x.x E/KeyHashKeyHash :: m1DdhQpuWCXQ8oYxNziY3Q6/VbI= package com.x.x; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.Signature; import android.os.Bundle; import android.util.Base64; import android.util.Log; import java.security.MessageDigest; import java.securit.. 2019. 10. 20.
네이버 플랫폼 맵 MultipartPathOverlay활용. 다중 경로 그리기 네이버 v3 지도에 다중 경로 그리기. PathOverlayMultipartPathOverlay와 Marker를 활용해서, 경로를 그리고, 마커를 표시함. //전역 변수 private ArrayList arrGpsLocation; private List lstLatLng; //최초 조회된 좌표, 우후 추가 된 부분만 조회할 경우 구분하기위해서 필요함. private static NaverMap nMap; private static PathOverlay path;//단일 경로 private MultipartPathOverlay multipartPath; //다중경로 //전역 변수 public void MapDrawAdd(ArrayList arrAddLocation) { //add marker int nCn.. 2019. 10. 11.
네이버 플랫폼 맵 PathOverlay활용. 경로 그리기 네이버 v3 지도에 경로 그리기. 초기 설정은 네이버 api 참조. PathOverlay와 Marker를 활용해서, 경로를 그리고, 마커를 표시함. //전역 변수 private ArrayList arrGpsLocation; private List lstLatLng; //최초 조회된 좌표, 우후 추가 된 부분만 조회할 경우 구분하기위해서 필요함. private static NaverMap nMap; private static PathOverlay path;//단일 경로 private MultipartPathOverlay multipartPath; //다중경로 //전역 변수 public void MapDraw() { path = new PathOverlay(); //ArrowheadPathOverlay in.. 2019. 10. 11.
androidx.appcompat.widget.toolbar vs android.support.v7.widget.toolbar android.support.*, com.android.support.*(v7) 은 패키지명을 변경. androidx ... 조낸짱나는 자바. 욕만 나옴.... 제대로 된게 모냐.. OS 버전별로 바뀌고... 패키지도 이제 지들 맘대로 바꾸네... 맨날 바껴... 자료 찾기도 힘들고... 환장하겠다. ㅜㅜ 2019. 10. 5.
달력의 시작값 java는 월(month)은 0부터 시작... 12월은 11값을 사용해야됨... ㅡㅡ; 받을 때는 +1, 넣을 때는 -1... String [] arrDate = etDate.getText().toString().split("-");//"2019-10-03" DatePickerDialog dialog = new DatePickerDialog(v.getContext(), null, Integer.valueOf(arrDate[0]), Integer.valueOf(arrDate[1]) - 1, Integer.valueOf(arrDate[2])); 자바... 진자 좆같네... 2019. 10. 3.
error: cannot resolve constructor context에서 cannot resolve constructor 오류 해결법 ArrayAdapter spnAdp = new ArrayAdapter(this, R.layout.support_simple_spinner_dropdown_item, lstPhoneNo); this 대신 getApplicationContext() 사용 ArrayAdapter spnAdp = new ArrayAdapter(getApplicationContext(), R.layout.support_simple_spinner_dropdown_item, lstPhoneNo); 이러면, 작동 안될 때가 있음. 그럴 때는 외부 메서드로 변경. 왜 이러는지는 모르겠음. private void spinnerDataSetting(ArrayLis.. 2019. 10. 1.
Toolbar toolbar를 사용하기 위해서, 변경해야되는 곳. activity layout res/values/styles.xml에서 툴사 사용 안하게 설정. NoActionBar설정 activity 설정. Toolbar tb = (Toolbar) findViewById(R.id.app_toolbar) ; setSupportActionBar(tb) ; 2019. 9. 30.
error: Can't create handler inside thread that has not called Looper.prepare() Tread를 사용하다 보면 다음과 같은 오류가 발생함. Can't create handler inside thread that has not called Looper.prepare() 이때 아래 코드를 사용하면 됨. 참조해야될 라이브러리 import android.os.Handler; import android.os.Looper; Handler mHandler = new Handler(Looper.getMainLooper()); mHandler.postDelayed(new Runnable() { @Override public void run() { // code } }, 0); Timer에서의 사용 예 TimerTask timerTask = new TimerTask() { @Override public .. 2019. 9. 28.
폰의 전화번호 조회 권한 설정 AndroidManifest.xml 코드 private String getPhoneNumber() { TelephonyManager telephoneyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); String phoneNumber = ""; try{ phoneNumber = telephoneyManager.getLine1Number(); } catch(Exception e) { txtMessage.setText(e.getMessage()); } return phoneNumber; } 마쉬멜로에서 전화 번호 읽어오지 못할 때 폰의 애플리케이션 정보에서 권한 설정할 것 https://haru.kafra.kr/23 2019. 9. 26.
Android Exception Message android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.cocktail/com.example.cocktail.CocktailListActivity}; have you declared this activity in your AndroidManifest.xml? ->AndroidManifest.xml에 해당 Activity를 추가해준다. java.lang.ClassCastException:com.example.cocktail.Data.CocktailData cannot be cast to java.util.ArrayList ->다음 URL 참고, ArrayListrk 아닌 데이터를 ArrayLi.. 2019. 9. 5.
Activity 간 이동 후에 이전 Activity로 되돌아 갈 때 Activity 간 이동 후에 이전 Activity로 되돌아 갈 때 onBackPressed(); 이전 activity로 이동을 한다. finish(); 현재 activity를 종료한다. 현재 activity가 종료가 되므로, 바로 이전에 실행된 activity로 돌악가게된다. 함수를 호출하면, 이전 activity로 이동한다. 이 동 전 값도 유지하고 있다. 2019. 9. 5.
Activity 간에 데이터 주고 받기 A activity에서 B activity로 데이터 전송할 때 A activity Intent intent = new Intent(getApplicationContext(), TestListActivity.class); intent.putExtra("Code1", "AAAA"); intent.putExtra("Code2", "BBBB"); //다른 화면 전환 startActivity(intent); B activity Intent intent = getIntent(); /*데이터 수신*/ String aaaa = intent.getStringExtra("Code1")); String bbbb = intent.getStringExtra("Code2")); 2019. 9. 5.
JSONObject 사용시 주의 사항 아래와 같이 예외처리를 하지 않으면, 다음과 같은 unhandled exception org.json.jsonexception 에러가 난다. import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; try { JSONObject obj = new JSONObject(data); JSONArray ja = obj.getJSONArray("d"); for (int i = 0; i < ja.length(); i++) { JSONObject jsonData = ja.getJSONObject(i); CommonData cData = new CommonData(); cData.setCode(jsonData.getStri.. 2019. 9. 2.
반응형