๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ’ปTech/๐ŸŒตandroid18

[์•ˆ๋“œ๋กœ์ด๋“œ] ํŽ˜์ด์Šค๋ถ ๋กœ๊ทธ์ธ ๊ฐ„๋‹จ ์—ฐ๋™ ํŽ˜์ด์Šค๋ถ 4.x ๋ฒ„์ „ SDK ์ ์šฉํ•˜๊ณ  ํŽ˜์ด์Šค๋ถ ๋กœ๊ทธ์ธ ์—ฐ๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ํฌ์ŠคํŒ… ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด์ „ ๋ฒ„์ „ SDK ์ ์šฉ์‹œ ํŽ˜์ด์Šค๋ถ ์•ฑ์ด ์„ค์น˜๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ ์ œ๋Œ€๋กœ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค์ง€ ๋ชปํ•˜๋Š” ์˜ค๋ฅ˜๊ฐ€ ์žˆ์—ˆ๋Š”๋ฐ ์ €๋Š” ์ตœ์‹  ๋ฒ„์ „ SDK ์ ์šฉ ํ›„ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ๋„ค์š”. ๊ธฐ๋ณธ์ ์œผ๋กœ developers.facebook์— ํŽ˜์ด์Šค๋ถ๊ณผ ์—ฐ๋™ํ•  ์•ฑ ๋“ฑ๋กํ•˜์‹œ๊ณ  App ID๋Š” ๊ฐ€์ง€๊ณ  ์žˆ์œผ์…”์•ผํ•ฉ๋‹ˆ๋‹ค. AndroidManifest.xml์— App ID๋ฅผ ๋“ฑ๋ก ํ•ด์ค˜์•ผ ํ•˜๊ฑฐ๋“ ์š”. ํŽ˜์ด์Šค๋ถ์— ์•ฑ ๋“ฑ๋กํ•˜๋Š” ๋ถ€๋ถ„์€ ๊ฒ€์ƒ‰ํ•˜๋ฉด ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค 1. ์•„๋ž˜ ๋งํฌ์—์„œ 4 ๋ฒ„์ „์— SDK ๋‹ค์šด ๋ฐ›์•„์ฃผ์„ธ์š” https://developers.facebook.com/docs/android/downloads 2. SDK ์••์ถ• ํ‘ธ์‹œ๊ณ  ํ”„๋กœ์ ํŠธ Import ํ›„ bolt.. 2015. 11. 18.
[์•ˆ๋“œ๋กœ์ด๋“œ] ์ƒํƒœ๋ฐ”(Status Bar) ์ƒ‰์ƒ ๋ณ€๊ฒฝ ์•ˆ๋“œ๋กœ์ด๋“œ ์ƒํƒœ๋ฐ” (Status Bar) ์ปฌ๋Ÿฌ๋ฅผ ์ž๋ฐ” ์ฝ”๋“œ์ƒ์—์„œ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. libs ํด๋”์— ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ถ”๊ฐ€ํ•ด์ฃผ์„ธ์š”. Activity์˜ onCreate ๋ฉ”์†Œ๋“œ ์•ˆ์— ์ž๋ฐ” ์ฝ”๋“œ๋กœ ์ž‘์„ฑํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); getWindow().setStatusBarColor(Color.RED); [๊ฒฐ๊ณผ ํ™”๋ฉด] 2015. 10. 26.
[์•ˆ๋“œ๋กœ์ด๋“œ] ๊ฐ„๋‹จํ•˜๊ฒŒ ์Šฌ๋ผ์ด๋“œ ๋ฉ”๋‰ด ์ ์šฉ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๋„ค๋น„๊ฒŒ์ด์…˜ ๋“œ๋กœ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์Šฌ๋ผ์ด๋“œ ๋ฉ”๋‰ด๋ฅผ ๊ตฌํ˜„ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋จผ์ € libs ํด๋”์— android-support-v4.jar ํด๋”๋ฅผ ์ถ”๊ฐ€ ํ•ฉ๋‹ˆ๋‹ค. activity_slide_menu.xml SlideMenuActiviy.java import android.app.Activity; import android.graphics.Color; import android.os.Bundle; import android.support.v4.widget.DrawerLayout; import android.view.View; import android.view.View.OnClickListener; import android.widget.AdapterView; import android.widg.. 2015. 9. 25.
[์•ˆ๋“œ๋กœ์ด๋“œ] ํฐ์— ์„ค์ •๋˜์–ด์žˆ๋Š” ์–ธ์–ด ๊ฐ€์ ธ์˜ค๊ธฐ //ํฐ์— ์„ค์ •๋˜์–ด ์žˆ๋Š” ์–ธ์–ด ๊ฐ’ ์ถ”์ถœ Locale locale = getResources().getConfiguration().locale; String language = locale.getLanguage(); 2015. 9. 17.
[์•ˆ๋“œ๋กœ์ด๋“œ] url ์ด๋ฏธ์ง€ ํด๋”์— ์ €์žฅํ•˜๊ณ  ์ด๋ฏธ์ง€ ์—ด๊ธฐ ์ด๋ฏธ์ง€ url๋กœ ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด๋ฐ›์•„ ํด๋”์— ์ €์žฅํ•˜๊ณ  ์ €์žฅํ•œ ์ด๋ฏธ์ง€๋ฅผ ๊ฐค๋Ÿฌ๋ฆฌ๋ฅผ ํ†ตํ•ด ์—ฌ๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. 1. ํผ๋ฏธ์…˜ ์„ค์ • (AndroidManifest.xml) 2. ์ž๋ฐ” ์ฝ”๋“œ ์ž‘์„ฑ (MainActivity.java) import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; import android.app.Activity; import android.content.Intent.. 2015. 9. 17.
[์•ˆ๋“œ๋กœ์ด๋“œ] ์ „ํ™” ๋ฐ”๋กœ ๊ฑธ๊ธฐ ์›ํ•˜๋Š” ๋ฒˆํ˜ธ๋กœ ๋ฐ”๋กœ ํ†ตํ™” ๊ฑฐ๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. AndroidManifest.xml ์ž๋ฐ”์ฝ”๋“œ String telNo = "010-0000-0000"; Intent call = new Intent(Intent.ACTION_CALL, Uri.parse("tel:/" + telNo)); startActivity(call); 2015. 9. 16.
[์•ˆ๋“œ๋กœ์ด๋“œ] ๊ฐ„๋‹จํ•œ AlertDialog ์‚ฌ์šฉ๋ฐฉ๋ฒ• ์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ ์ œ๊ณตํ•˜๋Š” AlertDialog ์‚ฌ์šฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜์—ฌ alert์ฐฝ๊ณผ confirm์ฐฝ์— ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ“ˆ Alert์ฐฝ ์ ์šฉ AlertDialog.Builder alert = new AlertDialog.Builder(this); alert.setTitle("Error"); alert.setMessage("์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒ ํ•˜์˜€์Šต๋‹ˆ๋‹ค."); alert.setPositiveButton("ํ™•์ธ", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }); alert.show(); ๐Ÿ“‰ Confirm์ฐฝ ์ ์šฉ AlertDialog.Builder alert = ne.. 2015. 9. 16.
[์•ˆ๋“œ๋กœ์ด๋“œ] LGํฐ ์†Œํ”„ํŠธํ‚ค ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ• ์•ˆ๋“œ๋กœ์ด๋“œ ๊ฐœ๋ฐœํ•  ๋•Œ Lgํฐ์— ์†Œํ”„ํŠธํ‚ค๋ฅผ ์œ ๋ฌด๋ฅผ ํ™•์ธํ•ด์•ผ ํ•  ๊ฒฝ์šฐ๊ฐ€ ์ข…์ข… ์žˆ๋Š”๋ฐ์š”. ๊ฐ„๋‹จํ•˜๊ฒŒ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. /** * Lg ํฐ ์ผ ๊ฒฝ์šฐ Dp ๊ฐ’ ์กฐ์ • */ private void checkLgPhone() { //๋ฉ”๋‰ด๋ฒ„ํŠผ ์œ ๋ฌด boolean hasMenuKey = ViewConfiguration.get(getApplicationContext()).hasPermanentMenuKey(); //๋’ค๋กœ๊ฐ€๊ธฐ ๋ฒ„ํŠผ ์œ ๋ฌด boolean hasBackKey = KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_BACK); if (!hasMenuKey && !hasBackKey) { // lgํฐ ์†Œํ”„ํŠธํ‚ค์ผ ๊ฒฝ์šฐ Log.i("phoneType", "LGphone"); }.. 2015. 9. 15.