posted by By훈트 2010.08.14 17:26

    public int getLcdSIzeWidth() {
        return ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getWidth();
    }
        
    public int getLcdSIzeHeight() {
        return ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getHeight();
    }


[출처] 안드로이드 개발자모임 카페의 에디터님의 글


신고
posted by By훈트 2010.08.12 19:14
안드로이드 개발 중 필요한 자료 링크 ~!
<출처 : http://miksnug.pe.kr/26 >

1. 이미지와 텍스트가 같이 들어간 버튼 만들기

http://www.androidpub.com/15765


2.
버튼 색깔 바꾸기

http://stackoverflow.com/questions/1521640/standard-android-button-with-a-different-color


3. 
전체화면 사용하기 (Status bar, Title bar 숨기기)

http://www.androidpub.com/4710


4. 
ImageButton의 투명 효과 사용하기

http://joywoni.egloos.com/2847047 

android:background="#a0000000" 를 설정하면 배경이 투명해지므로 버튼 모양을 안봐도 된다.


5. 
Android 정리문서

http://sgap.springnote.com/pages/5076381

 SurfaceView와 SurfaceHolder.Callback, thread


6. 
네이티브 안드로이드 개발 관련 블로그

http://hybridego.net/

 

 7. 안드로이드 개발 각종 예제 소스

http://www.androidpeople.com/2010/01/

  

8. 메뉴별 이미지 처리

http://stackoverflow.com/questions/2065430/fixed-android-detecting-focus-pressed-color

 

9. 객체 Style 처리

http://www.anddev.org/viewtopic.php?p=37330

 

10. Button Highlight

http://www.androidpeople.com/category/android-tutorial/

  

11. SurfaceView

http://vissel.tistory.com/92

  

12. android:configChanges

http://www.androidpub.com/52338

 

13. 전원관리

http://samse.tistory.com/entry/AlarmManager-PowerManager

 

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);

 PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag");

 wl.acquire();

   ..screen will stay on during this section..

 wl.release();


14. 
하드웨어 콘트롤 관련 PDF 문서

http://mikechen.com/classes/2009-11-27%20NTU%20Mobile%20Phone%20Programming%20-%20Mike%20Chen%20-%2010%20-%20Security,%20Camera,%20Audio%20and%20Video.pdf

  

15. unique device ID 고유값 가져오기

http://developer.android.com/reference/android/telephony/TelephonyManager.html#getDeviceId%28%29

 

TelephonyManager mTelephonyMgr = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);

String imei = mTelephonyMgr.getDeviceId();


16. 
안드로이드 네이티브 라이브러리Ⅰ

http://www.imaso.co.kr/?doc=bbs/gnuboard.php&bo_table=article&wr_id=34284

 

[다른블로그] http://infodev.tistory.com/322

17. Introduction android

http://yotteum.tistory.com/entry/Introduction-Android

안드로이드 소개

바인딩 설명


18. 
안드로이드 - 버튼 OnClickListener 인터페이스 구현

http://woosa7.tistory.com/entry/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EB%B2%84%ED%8A%BC-OnClickListener-%EC%9D%B8%ED%84%B0%ED%8E%98%EC%9D%B4%EC%8A%A4-%EA%B5%AC%ED%98%84

http://www.cyworld.com/kkjw1801/3222534

 

19. Android - Change Tab Background

http://escomic.net/218

 

TabWidget에서 추가되는 Tab의 Background변경하기

Tab마다 View를 얻어와서 직접 BackgroundDrawable을 지정하고

아래 막대부분은 reflection을 이용하여 꽁수로 바꿔치기 한다

tab_indicator.xml, tab_bar_left.xml, tab_bar_right.xml 내용은 <selector>로 정의


20. 
KH5200 드라이버 설치

http://kil.imradriss.co.cc:8000/tc/30

  

21. DrawableTop 이미지 변경하기

http://www.androidpub.com/10154

 

보기 1 ================================================
Drawable img = context.getResources().getDrawable(R.drawable.filename);
Drawable img2 = img ;

보기 2 ================================================
Drawable img = context.getResources().getDrawable(R.drawable.filename);
Drawable img2 = context.getResources().getDrawable(R.drawable.filename);

보 기
 3 ================================================
Drawable img = context.getResources().getDrawable(R.drawable.filename);
Drawable img2 = context.getResources().getDrawable(R.drawable.filename2);
================================================

22. Layout 사이즈 동적변경

http://www.androidpub.com/40481

http://gall.dcinside.com/list.php?id=accident2&no=1195485

LinearLayout ll = (LinearLayout)findViewById(R.id.write_LinearLayout);

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT,

400);  // 400 이라는 높이를 지정

ll.setLayoutParams(params);

23. Android UI 개발기: XML 안쓰고 UI 코딩하기

http://xrath.com/2009/11/android-ui-%EA%B0%9C%EB%B0%9C%EA%B8%B0-xml-%EC%95%88%EC%93%B0%EA%B3%A0-ui-%EC%BD%94%EB%94%A9%ED%95%98%EA%B8%B0/

  

24. 전화상태 변화감지 리스너

PhoneStateListener 예제

http://www.kandroid.org/board/board.php?board=AndroidTechQnA&page=124&command=body&no=432

 

MyPhoneStateListener phoneListener=new MyPhoneStateListener();

TelephonyManager telephonyManager  =(TelephonyManager)getSystemService(TELEPHONY_SERVICE);

telephonyManager.listen(phoneListener,PhoneStateListener.LISTEN_CALL_STATE);

 

public class MyPhoneStateListener extends PhoneStateListener {...}


25. 
안드로이드 하드웨어관련 자료(통화,폰상태,네트워크,카메라,센서)

http://gtko.springnote.com/pages/5396297

http://developer.android.com/reference/android/content/Intent.html

http://developer.android.com/reference/android/net/ConnectivityManager.html

android.net.conn.CONNECTIVITY_CHANGE

 

26. sms 수신해서 요약내용 보여주기

http://www.anddev.org/recognize-react_on_incoming_sms-t295.html

http://flytop.tistory.com/62

android.provider.Telephony.SMS_RECEIVED

 

// SMS 수신 감지 등록

IntentFilter smsRcvFilter = new IntentFilter(CSmsReceiver .ACTION);

smsReceiver =  new CSmsReceiver();

registerReceiver(smsReceiver, smsRcvFilter);

 

//if(smsReceiver != null) {

//    unregisterReceiver(smsReceiver);

//}

 

<!-- SMS Broadcast Receiver 등록 -->

<receiver android:name=".common.CSmsReceiver">

<intent-filter>

<action android:name="android.provider.Telephony.SMS_RECEIVED" />

</intent-filter>

</receiver>


27. 
BroadcastReceiver XML설정하기

http://www.androidpub.com/186727

<receiver android:name="리시버클래스" android:enabled="true">
<intent-filter><action android:name="android.net.conn.CONNECTIVITY_CHANGE" /></intent-filter>
</receiver>


28. 
각종 Management 클래스

http://www.imaso.co.kr/?doc=bbs/gnuboard.php&bo_table=article&page=10&wr_id=34565


29. 
Dialog 구조 분석

(아이콘,텍스트 위치등)

http://sgap.springnote.com/pages/5235569

 

30. SMS 수신시 Toast 메시지 출력

http://www.androidpub.com/138352

 

Intent sendIntent = new Intent(Intent.ACTION_SEND); sendIntent.addCategory("android.intent.category.DEFAULT");      

sendIntent.putExtra("address", PhoneNumberUtils.formatNumber(phoneNumber));

sendIntent.putExtra("exit_on_sent"true);

sendIntent.putExtra("subject""TEST MMS");

sendIntent.putExtra("sms_body""MMS 테스트입니다.");

context.startActivity(sendIntent);

31

Broadcast Receiver :네트워크상태 체크

http://www.anddev.org/viewtopic.php?p=32088

 

OnReceive 메소드 내에서..

ConnectivityManager connec=  (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);

if(connec.getNetworkInfo(0).getState()==NetworkInfo.State.CONNECTED||connec.getNetworkInfo(1).getState()==NetworkInfo.State.CONNECTING ) {

text.setText("hey your online!!!");

//Do something in here when we are connected

}

elseif(connec.getNetworkInfo(0).getState()== NetworkInfo.State.DISCONNECTED||connec.getNetworkInfo(1).getState() == NetworkInfo.State.DISCONNECTED ) {

text.setText("Look your not online");

}

32. 안드로이드 API기능 설명

http://www.jopenbusiness.com/mediawiki/index.php/Android

  

33. Actions for BroadcastReceiver

http://www.dearsoft.org/tag/broadcastreceiver/

 

34. Layout.out.xml 생성되는 문제

http://www.androidpub.com/101585

main.out.xml 파일은 삭제해 주세효~
그건 xml 을 펼쳐둔 상태에서 Run 을 하면 만들어 지는데, 그럼 제대로 실행이 되지 않아효~

35. Multi Touch

http://www.mentby.com/naya/multitouch-support-in-android-20.html

http://gist.github.com/324166

2.0 부터 지원

36. ScrollView 스크롤 하단으로 내리기

http://www.anddev.org/viewtopic.php?p=36823

sv.post(new Runnable() {

             public void run() {

                           sv.fullScroll(ScrollView.FOCUS_DOWN);

             }

});

37. Timer 만들기

http://developer.android.com/intl/de/resources/articles/timed-ui-updates.html

http://www.developer.com/java/ent/print.php/3589961

http://www.androidpub.com/4374

http://blog.inculab.net/25

 

38. Logcat 동작안하는 에러 발생시 처리

(Could not create the view: For input string: "")

http://www.mail-archive.com/android-developers@googlegroups.com/msg60683.html

hide details Aug 18
 
I have had the same problem.
 
The logcat view crashes after I inserted a filter containing a ":" in
the filtername.
I solved the problem by changing the settings in the file
".metadata/.plugins/org.eclipse.core.runtime/.settings/
com.android.ide.eclipse.ddms.prefs" placed in the workspace of
eclipse.
com.android.ide.eclipse.ddms.logcat.filters= was the key of the fault
setting.

 

39. SSL 인증서 등록하기

http://www.java2go.net/blog/197?TSSESSION=1202a1a23fa67bae15ce3ab15a5a0cea

http://www.virgo81.net/70

http://crazybob.org/2010/02/android-trusting-ssl-certificates.html

http://www.bouncycastle.org/latest_releases.html

keytool -import -keystore cacerts -file C:\cert\TrialRootCA.cer -alias afcert


40. 
Signing By Private Key

http://www.devx.com/wireless/Article/39972/1954

 

41. 영상 녹화하기

http://www.anddev.org/viewtopic.php?p=24723#24723

 

42. SurfaceView 의 이해

http://androidhuman.tistory.com/entry/카메라를-이용하자-SurfaceView에-대한-이해

 

43. 안드로이드 JAVA 소스

http://anddev.tistory.com/77

http://anddev.tistory.com/50

http://anddev.tistory.com/42

{SDK_LOCATION}/platforms/1.5/sources


44. 
SSL 인증서 우회하기

http://www.experts-exchange.com/Programming/Languages/Java/Q_23063074.html

http://7bee.j2ee.us/blog/2008/03/28/1206704820000.html

 

45. JAVA SSL 관련 공식문서

http://java.sun.com/javase/6/docs/technotes/guides/security/jsse/JSSERefGuide.html

http://java.sun.com/javase/6/docs/technotes/guides/security/jsse/JSSERefGuide.html#CreateKeystore

http://java.sun.com/javase/6/docs/technotes/guides/security/jsse/JSSERefGuide.html#CodeExamples

http://java.sun.com/javase/6/docs/technotes/guides/security/jsse/samples/sockets/client/SSLSocketClient.java

 

46. SSL 인증서 증명에러 해결하기

http://blog.naver.com/PostView.nhn?blogId=fidelis98&logNo=140103425406&redirect=Dlog&widgetTypeCall=true

http://code.google.com/p/android/issues/detail?id=1946

http://developer.android.com/intl/de/reference/javax/net/ssl/TrustManager.html

http://mail-archives.apache.org/mod_mbox/hc-httpclient-users/200906.mbox/

http://www.exampledepot.com/egs/javax.net.ssl/GetCert.html?l=rel

http://www.android-portal.com/2007/12/20/secure-server-socket-with-tlsssl-on-android-fails/

http://www.exampledepot.com/egs/javax.net.ssl/TrustAll.html?

http://blog.keduall.co.kr/lsb76/entry/자바-SSL-접속-오류

해결방법http://www.exampledepot.com/egs/javax.net.ssl/TrustAll.html

 

// Create a trust manager that does not validate certificate chains

TrustManager[] trustAllCerts = new TrustManager[]{

   new X509TrustManager() {

        public java.security.cert.X509Certificate[] getAcceptedIssuers() {

             return null;

        }

        public void checkClientTrusted( java.security.cert.X509Certificate[] certs, String authType) {

        }

        public void checkServerTrusted( java.security.cert.X509Certificate[] certs, String authType) {

        }

    }

};


47. 
안드로이드 Service 에서 Activity 를 실행하는 방법 

http://blog.naver.com/huewu/110084868855

 

Intent i = new Intent(this, ServiceTest.class);

PendingIntent p = PendingIntent.getActivity(this, 0, i, 0);

try {

           p.send();

} catch (CanceledException e) {

           e.printStackTrace();

}

 

48. 안드로이드 이미지(사진) 불러오기

http://shinluckyarchive.tistory.com/469

http://developer.android.com/reference/android/graphics/BitmapFactory.Options.html

 

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
...
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 8;  
Bitmap src = BitmapFactory.decodeFile(fileListSDCard[i], options);
Bitmap resized = Bitmap.createScaledBitmap(src, 100, 100, true);

 

49. SSL 인증키 무조건 우회하기

http://groups.google.com/group/android-developers/browse_thread/thread/62d856cdcfa9f16e

public class _FakeX509TrustManager implements X509TrustManager { 
        private static TrustManager[] trustManagers; 
        private static final X509Certificate[] _AcceptedIssuers = new 
X509Certificate[] {};
 
        @Override 
        public void checkClientTrusted(X509Certificate[] chain, String 
authType) throws CertificateException {
 
        } 
        @Override 
        public void checkServerTrusted(X509Certificate[] chain, String 
authType) throws CertificateException {
 
        } 
        public boolean isClientTrusted(X509Certificate[] chain) { 
                return true; 
        } 
        public boolean isServerTrusted(X509Certificate[] chain) { 
                return true; 
        } 
        @Override 
        public X509Certificate[] getAcceptedIssuers() { 
                return _AcceptedIssuers; 
        } 
        public static void allowAllSSL() { 
                HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() 
             {
 
                        @Override 
                        public boolean verify(String hostname, SSLSession session) { 
                                return true; 
                        } 
                }); 
                SSLContext context = null; 
                if (trustManagers == null) { 
                        trustManagers = new TrustManager[] { new _FakeX509TrustManager() }; 
                } 
                try { 
                        context = SSLContext.getInstance("TLS"); 
                        context.init(null, trustManagers, new SecureRandom()); 
                } catch (NoSuchAlgorithmException e) { 
                        e.printStackTrace(); 
                } catch (KeyManagementException e) { 
                        e.printStackTrace(); 
                } 
                  
HttpsURLConnection.setDefaultSSLSocketFactory(context.getSocketFactory()); 
        } 
}

50. 효과음 관련 자료(Creating Sound Effects in Android)

http://www.androidpub.com/257540#4

신고
posted by By훈트 2010.08.11 09:09



가로화면, 세로화면 전환시 문제점

가로, 세로로 화면을 전환할때 마다

onCreate() -> onStart() -> onResume()

이런 순서대로 실행됩니다.

만약 파일을 읽거나 네트워크처리가 들어가게되면 중복처리가 발생할 수도 있습니다.

이걸 막는 방법에는 몇가지가 있는듯 하나

제일 간단한 방법인거 같은 AndroidManifest.xml 을 수정하는 방법을 적어봅니다.

1 <activity android:name="testA">
2 <activity android:name="testB" android:configchanges="orientation">
3 <activity android:name="testC"android:configchanges="keyboard|keyboardHidden|orientation">
4 </activity></activity></activity>

testA 액티비티는 아무런 수정이 없으므로 위와 같은 문제가 존재합니다.

testB 액티비티는 가로, 세로 화면 전환에서는 위의 문제가 발생하지 않습니다.

testC 액티비티는 가로, 세로 화면 전환과 쿼티자판을 열고 닫을때에도 위의 문제가 발생하지 않습니다.


화면 전환이나 쿼티자판을 열고 닫을때에도 onCreate -> onStart() -> onResume() 이 실행되지 않게 하려면 이방법이 가장 쉬운 방법이 될것 입니다.


[출처] http://yoonhg84.tistory.com/90

신고
posted by By훈트 2010.08.03 13:42
학교 안드로이드 수업시간에 참고했던 PPT 강의자료입니다.
같이 공부하는분들 처음 안드로이드 공부시작하실때 도움될까 싶어 올립니다.
자료의 출처는 교수님께 받았기에 잘모르겠다는.... 아마 구글의 안드로이드 책을 참고한듯한 느낌이 강하게 !!ㅋ

파일 용량 제한문제로 알집파일 6개로 압축해서 올리겠습니다.
신고
posted by By훈트 2010.08.03 13:37
학교 안드로이드 수업시간에 참고했던 PPT 강의자료입니다.
같이 공부하는분들 처음 안드로이드 공부시작하실때 도움될까 싶어 올립니다.
자료의 출처는 교수님께 받았기에 잘모르겠다는.... 아마 구글의 안드로이드 책을 참고한듯한 느낌이 강하게 !!ㅋ

파일 용량 제한문제로 알집파일 6개로 압축해서 올리겠습니다.
신고
posted by By훈트 2010.08.03 13:29
학교 안드로이드 수업시간에 참고했던 PPT 강의자료입니다.
같이 공부하는분들 처음 안드로이드 공부시작하실때 도움될까 싶어 올립니다.
자료의 출처는 교수님께 받았기에 잘모르겠다는.... 아마 구글의 안드로이드 책을 참고한듯한 느낌이 강하게 !!ㅋ

파일 용량 제한문제로 알집파일 6개로 압축해서 올리겠습니다.

신고
posted by By훈트 2010.08.03 13:27
학교 안드로이드 수업시간에 참고했던 PPT 강의자료입니다.
같이 공부하는분들 처음 안드로이드 공부시작하실때 도움될까 싶어 올립니다.
자료의 출처는 교수님께 받았기에 잘모르겠다는.... 아마 구글의 안드로이드 책을 참고한듯한 느낌이 강하게 !!ㅋ

파일 용량 제한문제로 알집파일 6개로 압축해서 올리겠습니다.

신고
posted by By훈트 2010.08.03 13:24
학교 안드로이드 수업시간에 참고했던 PPT 강의자료입니다.
같이 공부하는분들 처음 안드로이드 공부시작하실때 도움될까 싶어 올립니다.
자료의 출처는 교수님께 받았기에 잘모르겠다는.... 아마 구글의 안드로이드 책을 참고한듯한 느낌이 강하게 !!ㅋ

파일 용량 제한문제로 알집파일 6개로 압축해서 올리겠습니다.

신고
posted by By훈트 2010.08.03 13:21
학교 안드로이드 수업시간에 참고했던 PPT 강의자료입니다.
같이 공부하는분들 처음 안드로이드 공부시작하실때 도움될까 싶어 올립니다.
자료의 출처는 교수님께 받았기에 잘모르겠다는.... 아마 구글의 안드로이드 책을 참고한듯한 느낌이 강하게 !!ㅋ

파일 용량 제한문제로 알집파일 6개로 압축해서 올리겠습니다.


신고
posted by By훈트 2010.08.02 10:37
안드로이드에서 HTTP를 통한 데이타를 가져오는 방식은,
URL클래스 또는 HttpClient를 사용하는 방법이 있다.

1. URL 클래스 사용

 GET 방식으로 간편히 사용할수 있지만, POST방식은 파라미터를 전달하는 방식이 다르므로
이 대로는 파라미터를 전달할수 없다.

2. HTTPClient 사용
잘못된 예1

HttpPost에 URL과 전달할 파라미터들을 헤더에 추가하여 결과를 얻는다.
HttPost 에 정보 담기
-> HttpClient에서 요청을 실행 HttpResponse로 결과 리턴
-> HttpResponse의 getEntity로 inputstream을 얻어서 결과 얻기

결과를 얻어왔지만,
ㄱ. 파라미터가 제대로 넘어가지 않는 문제와
ㄴ. 한글을 인코딩에서 문제 발생

잘못된 예2

HttpParams 를 사용하여 파라미터를 전달하려함 (후에 안것이지만 HttpParams는 이런 용도가 아니라고 함)

그래서 사용한 방법은
NameValuePair 목록을 가지는 List를 활용하는 방법로 파라미터명 - 값을 List<NameValuePair>로 모아
HttpPost요청에 setEntity(new UrlEncodedFormEntity()) 한다.

결과를 얻어왔지만,
ㄱ. 파라미터가 제대로 넘어가지 않는 문제와
ㄴ. 한글을 인코딩에서 문제 발생

3. 성공한 예

HttpURLConnection을 사용.
PrintWriter를 통해 데이타를 보내고, HttpURLConnection을 통해 InputStream을 얻어 결과를 만든다. -> 파라미터 전송 성공

한글문제는 보내거나 받을때, 모두 최초의 스트림을 만들때 인코딩 문자열을 넘길수 있는 생성자를 통해 한글 인코딩을 전달하여 생성하니 한글도 정상적으로 동작.
신고