Android에서 수동으로 MediaScan 하기Android에서 수동으로 MediaScan 하기

Posted at 2011.03.20 21:42 | Posted in About Programing/05. Android
크리에이티브 커먼즈 라이선스
Creative Commons License
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,
				Uri.parse("file://" 
			     + Environment.getExternalStorageDirectory())));  
저작자 표시 비영리 변경 금지
신고

Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

Android에서 기기 계정 정보 가져오기Android에서 기기 계정 정보 가져오기

Posted at 2011.03.07 21:55 | Posted in About Programing/05. Android
크리에이티브 커먼즈 라이선스
Creative Commons License
AndroidManifest.xml 에서 Permission 설정

<uses-permission android:name="android.permission.GET_ACCOUNTS"></uses-permission>

Source

Account[] accounts = AccountManager.get(this).getAccounts();
저작자 표시 비영리 변경 금지
신고

Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

Android 내장 메모리의 사진 정보 가져오기Android 내장 메모리의 사진 정보 가져오기

Posted at 2011.02.28 23:52 | Posted in About Programing/05. Android
크리에이티브 커먼즈 라이선스
Creative Commons License
AndroidManifest.xml 에서 Permission 설정




Main.java

package com.eg.giver;

import java.util.ArrayList;

import android.app.Activity;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.MediaStore.Images;

public class Main extends Activity
{
	ArrayList mTitleArray;
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        mTitleArray = new ArrayList();
        
        getImages ();
    }
    
    public void getImages ()
    {
    	Cursor mManagedCursor;
    	
    	mManagedCursor = getContentResolver().query(Images.Media.EXTERNAL_CONTENT_URI , null, null, null, null) ;
    	
    	if(mManagedCursor != null)
    	{
    		mManagedCursor.moveToFirst();
    		
    		int nSize = mManagedCursor.getColumnCount();
    		
    		while (true)
    		{
    			String bucket_display_name =
    				mManagedCursor.getString(
    						mManagedCursor.getColumnIndex(
    								Images.ImageColumns.BUCKET_DISPLAY_NAME)); // 버킷의 이름
    			String bucket_id =
    				mManagedCursor.getString(
    						mManagedCursor.getColumnIndex(
    								Images.ImageColumns.BUCKET_ID)); // 버킷 ID
    			String date_taken =
    				mManagedCursor.getString(
    						mManagedCursor.getColumnIndex(
    								Images.ImageColumns.DATE_TAKEN)); // 촬영날짜. 1/1000초 단위
    			String description =
    				mManagedCursor.getString(
    						mManagedCursor.getColumnIndex(
    								Images.ImageColumns.DESCRIPTION)); // Image에 대한 설명
    			String is_private =
    				mManagedCursor.getString(
    						mManagedCursor.getColumnIndex(
    								Images.ImageColumns.IS_PRIVATE)); // 공개 여부
    			String latitude = 
    				mManagedCursor.getString(
    						mManagedCursor.getColumnIndex(
    								Images.ImageColumns.LATITUDE)); // 위도
    			String longitude =
    				mManagedCursor.getString(
    						mManagedCursor.getColumnIndex(
    								Images.ImageColumns.LONGITUDE)); // 경도
    			String mini_thumb_magic =
    				mManagedCursor.getString(
    						mManagedCursor.getColumnIndex(
    								Images.ImageColumns.MINI_THUMB_MAGIC)); // 작은 썸네일
    			String orientation = 
    				mManagedCursor.getString(
    						mManagedCursor.getColumnIndex(
    								Images.ImageColumns.ORIENTATION)); // 사진의 방향. 0, 90, 180, 270
    			String picasa_id =
    				mManagedCursor.getString(
    						mManagedCursor.getColumnIndex(
    								Images.ImageColumns.PICASA_ID)); // 피카사에서 매기는 ID
    			String id =
    				mManagedCursor.getString(
    						mManagedCursor.getColumnIndex(
    								Images.ImageColumns._ID)); // 레코드의 PK
    			String data = 
    				mManagedCursor.getString(
    						mManagedCursor.getColumnIndex(
    								Images.ImageColumns.DATA)); // 데이터 스트림. 파일의 경로
    			String title =
    				mManagedCursor.getString(
    						mManagedCursor.getColumnIndex(
    								Images.ImageColumns.TITLE)); // 제목
    			String size = 
    				mManagedCursor.getString(
    						mManagedCursor.getColumnIndex(
    								Images.ImageColumns.SIZE)); // 파일의 크기
    			String mime_type =
    				mManagedCursor.getString(
    						mManagedCursor.getColumnIndex(
    								Images.ImageColumns.MIME_TYPE)); // 마임 타입
    			String display_name =
    				mManagedCursor.getString(
    						mManagedCursor.getColumnIndex(
    								Images.ImageColumns.DISPLAY_NAME)); // 파일 표시명
    			String date_modified =
    				mManagedCursor.getString(
    						mManagedCursor.getColumnIndex(Images.ImageColumns.DATE_MODIFIED)); // 최후 갱신 날짜. 초단위
    			String date_added =
    				mManagedCursor.getString(
    						mManagedCursor.getColumnIndex(
    								Images.ImageColumns.DATE_ADDED)); // 추가 날짜. 초단위
    			
    			mTitleArray.add(title);
    			
    			if (mManagedCursor.isLast())
    			{
    				break;
    			}
    			else
    			{
    				mManagedCursor.moveToNext();
    			}
    		}
    	}
    	
    }
}
저작자 표시 비영리 변경 금지
신고
  1. collin
    좋은 글 감사드립니다. 덕분에 고민하던 문제가 풀리기 시작했네요. ^^ 본문에 코드 중 SyntaxHighlighter 오류인지 ArrayList<string> 와 같이 String 이 string이라고 나와 있네요.
    • 2011.09.21 18:34 신고 [Edit/Del]
      도움이 되셨다니 다행입니다^^
      말씀하신 오타는 저도 수정하려고 노력 해보았습니다만,
      말씀하신데로 SyntaxHighlighter 오류인지 수정이 되질 않네요ㅠ
  2. 레브네인
    안녕하세요. 안드로이드 공부하다가 우연히 들리게 되었습니다.
    아직 초보라서 이해가 가지않는 부분이 많이 있는데.. 그중에서도 위의 소스코드중에
    가장 마지막에 </string></string> 이부분은 왜 넣는건가요?
  3. 에레시아
    정말 좋은정보 감사합니다^^;;
    한가지만 여쭤봐도 될까요? ㅎㅎ;
    값중에 해상도 값이 없는듯한데.. 혹시 알수 있을까요? ㅎㅎ;
  4. 솽솽
    관리자의 승인을 기다리고 있는 댓글입니다
  5. 초보
    관리자의 승인을 기다리고 있는 댓글입니다

Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

Android 내장 Calendar에서 일정 읽어 오기Android 내장 Calendar에서 일정 읽어 오기

Posted at 2011.02.01 11:55 | Posted in About Programing/05. Android
크리에이티브 커먼즈 라이선스
Creative Commons License
Google Calendar와 동기화 하는 방법을 찾다가 Java에서는 쉽게 구현 가능하지만,
Android와 Google Calendar API가 궁합이 맞지 않다는 것을 알고 우회하기로 하였다.

어차피 내장 Calendar는 Google Calendar와 자동으로 동기화가 되니,
내장 Calendar에서 값을 읽어 오기로 하였다.


// Main.java
package com.calendar;

import java.util.ArrayList;
import java.util.List;

import android.app.ListActivity;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class Main extends ListActivity {
    /** Called when the activity is first created. */
	
	ArrayAdapter mArrayAdapter;
	List mItems = new ArrayList();
	ListView mListView;
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        mListView = (ListView)findViewById(android.R.id.list);
        
        setCalendar();
    }
    
    public void setCalendar ()
	{
		Uri calendars = Uri.parse("content://com.android.calendar/events");
		
		String[] projection = new String[] {
				"calendar_id",
				"htmlUri",
				"title",
				"eventLocation",
				"description",
				"eventStatus",
				"selfAttendeeStatus",
				"commentsUri",
				"dtstart",
				"dtend",
				"eventTimezone",
				"duration",
				"allDay",
				"visibility",
				"transparency",
				"hasAlarm",
				"hasExtendedProperties",
				"rrule",
				"rdate",
				"exrule",
				"exdate",
				"originalEvent",
				"originalInstanceTime",
				"originalAllDay",
				"lastDate",
				"hasAttendeeData",
				"guestsCanModify",
				"guestsCanInviteOthers",
				"guestsCanSeeGuests",
				"organizer",
				"deleted"
		} ;
		Cursor managedCursor = getContentResolver().query(calendars, projection, "selected=1", null, null) ;

		if(managedCursor.moveToFirst()) {
			int[] calendar_id               = new int[managedCursor.getCount()];
			
			String[] htmlUri                = new String[managedCursor.getCount()];
			String[] title                  = new String[managedCursor.getCount()];
			String[] eventLocation          = new String[managedCursor.getCount()];
			String[] description            = new String[managedCursor.getCount()];
			int[] eventStatus               = new int[managedCursor.getCount()];
			int[] selfAttendeeStatus        = new int[managedCursor.getCount()];
			String[] commentsUri            = new String[managedCursor.getCount()];
			int[] dtstart                = new int[managedCursor.getCount()];
			int[] dtend                  = new int[managedCursor.getCount()];
			String[] eventTimezone          = new String[managedCursor.getCount()];
			String[] duration               = new String[managedCursor.getCount()];
			int[] allDay                    = new int[managedCursor.getCount()];
			int[] visibility                = new int[managedCursor.getCount()];
			int[] transparency              = new int[managedCursor.getCount()];
			int[] hasAlarm                  = new int[managedCursor.getCount()];
			int[] hasExtendedProperties     = new int[managedCursor.getCount()];
			String[] rrule                  = new String[managedCursor.getCount()];
			String[] rdate                  = new String[managedCursor.getCount()];
			String[] exrule                 = new String[managedCursor.getCount()];
			String[] exdate                 = new String[managedCursor.getCount()];
			String[] originalEvent          = new String[managedCursor.getCount()];
			int[] originalInstanceTime      = new int[managedCursor.getCount()];
			int[] originalAllDay            = new int[managedCursor.getCount()];
			int[] lastDate               = new int[managedCursor.getCount()];
			int[] hasAttendeeData           = new int[managedCursor.getCount()];
			int[] guestsCanModify           = new int[managedCursor.getCount()];
			int[] guestsCanInviteOthers     = new int[managedCursor.getCount()];
			int[] guestsCanSeeGuests        = new int[managedCursor.getCount()];
			String[] organizer              = new String[managedCursor.getCount()];
			int[] deleted                   = new int[managedCursor.getCount()];
			
			for (int i = 0 ; i < title.length ; i++) {
				calendar_id[i] = managedCursor.getInt(0);
				Log.i("Calendar", "ID : " + calendar_id[i]);
				htmlUri[i] = managedCursor.getString(1);
				Log.i("Calendar", "htmlUri : " + htmlUri[i]);
				title[i] = managedCursor.getString(2);
				Log.i("Calendar", "title : " + title[i]);
				eventLocation[i] = managedCursor.getString(3);
				Log.i("Calendar", "eventLocation : " + eventLocation[i]);
				description[i] = managedCursor.getString(4);
				eventStatus[i] = managedCursor.getInt(5);
				selfAttendeeStatus[i] = managedCursor.getInt(6);
				commentsUri[i] = managedCursor.getString(7);
				dtstart[i] = managedCursor.getInt(8);
				dtend[i] = managedCursor.getInt(9);
				eventTimezone[i] = managedCursor.getString(10);
				duration[i] = managedCursor.getString(11);
				allDay[i] = managedCursor.getInt(12);
				visibility[i] = managedCursor.getInt(13);
				transparency[i] = managedCursor.getInt(14);
				hasAlarm[i] = managedCursor.getInt(15);
				hasExtendedProperties[i] = managedCursor.getInt(16);
				rrule[i] = managedCursor.getString(17);
				rdate[i] = managedCursor.getString(18);
				exrule[i] = managedCursor.getString(19);
				exdate[i] = managedCursor.getString(20);
				originalEvent[i] = managedCursor.getString(21);
				originalInstanceTime[i] = managedCursor.getInt(22);
				originalAllDay[i] = managedCursor.getInt(23);
				lastDate[i] = managedCursor.getInt(24);
				hasAttendeeData[i] = managedCursor.getInt(25);
				guestsCanModify[i] = managedCursor.getInt(26);
				guestsCanInviteOthers[i] = managedCursor.getInt(27);
				guestsCanSeeGuests[i] = managedCursor.getInt(28);
				organizer[i] = managedCursor.getString(29);
				deleted[i] = managedCursor.getInt(30);
				
				if (title[i] != null)
				{
					mItems.add(title[i]);
				}
				
				managedCursor.moveToNext() ;
			}
			managedCursor.close();
			
			mArrayAdapter = new ArrayAdapter (this, android.R.layout.simple_list_item_1, mItems);
			mListView = (ListView)findViewById (android.R.id.list);
			mListView.setAdapter(mArrayAdapter);
			mListView.setItemsCanFocus(true);
		}
	}
}

마지막줄에 </string></string></string></string>이 자꾸 붙네요-_-
무시하세요.

// main.xml




    	



LISTVIEW 와 LINEARLAYOUT 이 모두 대문자로 적혀있는데, 수정이 안되네요-_-;;
ListView, LinearLayout 으로 수정해서 사용하시기 바랍니다.

// AndroidManifest.xml


    
        
            
                
                
            
        

    
    



 
저작자 표시 비영리 변경 금지
신고
  1. ibj2012
    안녕하세요.. 숙신님.
    "Android 내장 Calendar에서 일정 읽어 오기" 글을 보고 따라해보았습니다.
    그러나 실행이 잘 되지 않네요.. 답답하여서 질문 남깁니다.
    테스트환경은 안드로이드 2.2 갤럭시탭입니다.
    응용프로그램(android.calendar프로세스)이 예상치 않게 중지되었습니다. 다시 시도해주세요.
    라고 팝업창이 뜹니다.
    어떻게 해야할지 모르겠네요..
    바쁘시겠지만 잠시 조언 좀 부탁드리겠습니다.
    • 2011.05.16 10:33 신고 [Edit/Del]
      단순히 예상치 않게 중지 되었다는것만 알려주시면
      어디서 문제인지 잘 알수가 없습니다^^
      에러 Log 메세지나, 어느 시점에서 에러가 나는지에 대해서 말씀을 해 주셔야 정확한 답변을 드릴수 있을듯 합니다.
      지금 예상되는 바로는 Manifest 설정 문제 인것 같은데, 혹시 Permission이나 Activity 설정 올바르게 하셨는지 확인해보시겠어요?ㅎ
    • ibj2012
      2011.05.16 17:32 신고 [Edit/Del]
      문제를 해결하였습니다.
      원인은 대소문자 문제입니다. ㅠㅠ
      ListView를 LISTVIEW로 잘못적었네요..
      숙신님께서 Manifest쪽 문제인것같다고 하여서 그쪽으로 보다가 xml파일을 전부 확인해보니 main.xml파일에 대소문자를 잘못적었더군요.. 이런 기초적인 실수를 하다니 부끄럽습니다..ㅠㅠ
      질문을 올릴때 이렇게 빨리 답변을 해주실지 몰랐는데.. 너무 빠른 답글에 놀랐습니다. 감사드립니다.
      제가 안드로이드가 처음이여서 모르는 것이 많습니다. 다음에 또 잘 이해가 되지 않는 것들을 여쭤봐도 될런지요? ㅎㅎ
      항상 건강하시기바랍니다. ^^
    • 2011.05.16 18:13 신고 [Edit/Del]
      언제든지 환영합니다^^
      부족한 실력이지만 도움이 되었으면 좋겠네요^^
  2. ibj2012
    안녕하세요. 숙신님.
    또 질문이 있습니다.^^
    제가 지금 안드로이드폰에서 서버에 로그인을 해야되는데요..
    서버는 현재 정성 서비스중인 웹서버와 제가 임의로 구현한 소켓서버입니다. 소켓통신 테스트는 하였습니다.
    둘다 로그인 후 안드로이드에서 액티비티가 넘어가도 세션이 유지되어야되는데요.
    처음부터 제가 구현할 실력이 못되어서 책과 인터넷에서 참고할만한 예제 소스를 찾고 있지만 쉽지 않네요. 혹시 로그인을 구현해보신적이 있으시나요?
    참고할만한 예제가 있으시면 무지한 중생에게 도움을 부탁드리겠습니다.
    계속 질문만드려서 죄송합니다. 오늘도 즐거운 하루 보내세요..^^
    • 2011.05.18 10:54 신고 [Edit/Del]
      Login을 구현해 보았냐는 질문을
      Android에서 소켓통신 하는걸 구현해 보았냐는 질문으로 이해해도 될까요?^^
      아니면 Activity가 넘어가도 Login 상태가 유지되어야 하는데, 그 방법을 모르겠다는 질문인가요?ㅎ
    • ibj2012
      2011.05.18 13:06 신고 [Edit/Del]
      최종적으로 제가 구현하고자하는 것은 로그인입니다.
      첫번째로 정상적인 사이트에 로그인을 하여 해당 사이트에서 로그인하였을때 제공받는 정보들을 안드로이드에서 조회하고 싶습니다.
      두번째로 제가 디비를 외부에 구성해놓고, 중간에 소켓서버를 열어두고 안드로이드가 소켓통신으로 서버와 통신하여 서버가 외부 디비로 쿼리를 조회하도록 하는 것인데요. 이때 로그인을하여서 사용자마다 다른 테이블을 조회하려고 합니다.
      그리고 Activity가 넘어가도 로그인 상태가 유지되도록 하여야 하는것도 물론 필요합니다.
    • 2011.05.18 20:37 신고 [Edit/Del]
      사이트에 로그인 하였을 때 제공받는 정보들을 얻고 싶으시다면, [HTML 파싱]이나 [XML 파싱]을 키워드로 검색해 보시기 바랍니다.
      두번째 질문은 소켓통신이 된다면 당연히 구현이 되는 사항인데 어느 부분에서 막히셨는지 잘 모르겠네요^^ 소켓 통신이 된다면 두번째에서 질문하신 모든 내용이 다 가능합니다^^ 혹시 Packet 설계는 하셨나요?
  3. 윤지용
    안녕하세요. 안드로이드에서 구글캘린더를 연동시키는 어플을 구현하려고 이리저리 찾아보던 도중 이 블로그를 발견하게된 학생입니다.

    제가 만들고자 하는건 읽어오는게 아니라 캘린더에 새로운 일정을 등록하고자 하는데요. 어떤식으로 하면 될지 좀 여쭤보고 싶네요.

    예를들어 addschedule("연도", "월", "일", "내용") 이런식으로 함수를 호출하면
    구글캘린더에 등록하는 식으로 말이죠.
    • 2011.05.19 10:37 신고 [Edit/Del]
      Google에서 Calendar와 연동하는
      Java 소스를 제공해주고 있습니다.

      하지만, Android에서는 Java의 모든 API를 제공하지 않습니다.

      저도 일정 등록을 해보려고 시도 하다가
      Google에서 제공해주는 Java API가 Android에서는
      제공하지 않아서 구현하지 못했었습니다^^

      물론 방법은 있겠지만, 제가 답변 드릴수 있는
      부분은 없는것 같네요^^

      도움이 되지 못해서 죄송합니다.
  4. 순삭!
    숙신님 안녕하세요
    저소스로 한번 돌려볼려고 긁어서 돌려보았는데 mItems.add(title[i]); 이부분에서 add가 에러가 납니다.왜그럴까요?
    • 2011.07.16 21:01 신고 [Edit/Del]
      ArrayAdapter<STRING> mArrayAdapter;
      List<STRING> mItems = new ArrayList<STRING>();



      ArrayAdapter<String> mArrayAdapter;
      List<String> mItems = new ArrayList<String>();

      으로 바꿔보세요.
      그래도 안되면 로그캣 참조하세요^^
  5. 순삭!
    에뮬레이터에서 아이콘까지 만들어지는데 예상치 못하게 중지되었다고 나오네요;; 왜그런 걸까요..ㅠㅠ
  6. dtstart와 dtend는
    long 형으로 받아야 합니다 흑흑....
    timestamp가 짤리는...
  7. 비밀댓글입니다
  8. 비밀댓글입니다
  9. 힝..
    안녕하세요, 다이어리 일정을 가져오는 코드를 보고 가져와 써보려 하는데요..
    여러 에러들을 수정하고 하고,, 한 결과..
    moveToFirst 이쪽 널포인트익셉션이 발생하네요.. 왜그런가요?

Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

Android EditText의 InputType 설정값Android EditText의 InputType 설정값

Posted at 2011.01.07 03:16 | Posted in About Programing/05. Android
크리에이티브 커먼즈 라이선스
Creative Commons License

main.xml 속성에서 android:inputType= 으로 설정 가능.


          <EditText android:id="@+id/EditText03" 
                    android:layout_width="fill_parent" 
                    android:layout_height="wrap_content"
                    android:inputType="number">

양수 : number / 숫자 : numberSigned / 소수점 : numberDecimal
"|" 연산자를 통해 두가지 속성을 같이 적용할 수 있음. (number|numberDecimal)

속성값

android:inputType

Since: API Level

The type of data being placed in a text field, used to help an input method decide how to let the user enter text. The constants here correspond to those defined byInputType. Generally you can select a single value, though some can be combined together as indicated. Setting this attribute to anything besides none also implies that the text is editable.

Must be one or more (separated by '|') of the following constant values.

ConstantValueDescription
none 0x00000000 There is no content type. The text is not editable.
text 0x00000001 Just plain old text. Corresponds to TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_NORMAL.
textCapCharacters 0x00001001 Can be combined with text and its variations to request capitalization of all characters. Corresponds toTYPE_TEXT_FLAG_CAP_CHARACTERS.
textCapWords 0x00002001 Can be combined with text and its variations to request capitalization of the first character of every word. Corresponds to TYPE_TEXT_FLAG_CAP_WORDS.
textCapSentences 0x00004001 Can be combined with text and its variations to request capitalization of the first character of every sentence. Corresponds to TYPE_TEXT_FLAG_CAP_SENTENCES.
textAutoCorrect 0x00008001 Can be combined with text and its variations to request auto-correction of text being input. Corresponds toTYPE_TEXT_FLAG_AUTO_CORRECT.
textAutoComplete 0x00010001 Can be combined with text and its variations to specify that this field will be doing its own auto-completion and talking with the input method appropriately. Corresponds to TYPE_TEXT_FLAG_AUTO_COMPLETE.
textMultiLine 0x00020001 Can be combined with text and its variations to allow multiple lines of text in the field. If this flag is not set, the text field will be constrained to a single line. Corresponds to TYPE_TEXT_FLAG_MULTI_LINE.
textImeMultiLine 0x00040001 Can be combined with text and its variations to indicate that though the regular text view should not be multiple lines, the IME should provide multiple lines if it can. Corresponds to TYPE_TEXT_FLAG_IME_MULTI_LINE.
textNoSuggestions 0x00080001 Can be combined with text and its variations to indicate that the IME should not show any dictionary-based word suggestions. Corresponds to TYPE_TEXT_FLAG_NO_SUGGESTIONS.
textUri 0x00000011 Text that will be used as a URI. Corresponds to TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_URI.
textEmailAddress 0x00000021 Text that will be used as an e-mail address. Corresponds to TYPE_CLASS_TEXT |TYPE_TEXT_VARIATION_EMAIL_ADDRESS.
textEmailSubject 0x00000031 Text that is being supplied as the subject of an e-mail. Corresponds to TYPE_CLASS_TEXT |TYPE_TEXT_VARIATION_EMAIL_SUBJECT.
textShortMessage 0x00000041 Text that is the content of a short message. Corresponds to TYPE_CLASS_TEXT |TYPE_TEXT_VARIATION_SHORT_MESSAGE.
textLongMessage 0x00000051 Text that is the content of a long message. Corresponds to TYPE_CLASS_TEXT |TYPE_TEXT_VARIATION_LONG_MESSAGE.
textPersonName 0x00000061 Text that is the name of a person. Corresponds to TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_PERSON_NAME.
textPostalAddress 0x00000071 Text that is being supplied as a postal mailing address. Corresponds to TYPE_CLASS_TEXT |TYPE_TEXT_VARIATION_POSTAL_ADDRESS.
textPassword 0x00000081 Text that is a password. Corresponds to TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_PASSWORD.
textVisiblePassword 0x00000091 Text that is a password that should be visible. Corresponds to TYPE_CLASS_TEXT |TYPE_TEXT_VARIATION_VISIBLE_PASSWORD.
textWebEditText 0x000000a1 Text that is being supplied as text in a web form. Corresponds to TYPE_CLASS_TEXT |TYPE_TEXT_VARIATION_WEB_EDIT_TEXT.
textFilter 0x000000b1 Text that is filtering some other data. Corresponds to TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_FILTER.
textPhonetic 0x000000c1 Text that is for phonetic pronunciation, such as a phonetic name field in a contact entry. Corresponds toTYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_PHONETIC.
number 0x00000002 A numeric only field. Corresponds to TYPE_CLASS_NUMBER.
numberSigned 0x00001002 Can be combined with number and its other options to allow a signed number. Corresponds to TYPE_CLASS_NUMBER |TYPE_NUMBER_FLAG_SIGNED.
numberDecimal 0x00002002 Can be combined with number and its other options to allow a decimal (fractional) number. Corresponds toTYPE_CLASS_NUMBER | TYPE_NUMBER_FLAG_DECIMAL.
phone 0x00000003 For entering a phone number. Corresponds to TYPE_CLASS_PHONE.
datetime 0x00000004 For entering a date and time. Corresponds to TYPE_CLASS_DATETIME | TYPE_DATETIME_VARIATION_NORMAL.
date 0x00000014 For entering a date. Corresponds to TYPE_CLASS_DATETIME | TYPE_DATETIME_VARIATION_DATE.
time 0x00000024 For entering a time. Corresponds to TYPE_CLASS_DATETIME | TYPE_DATETIME_VARIATION_TIME.

This corresponds to the global attribute resource symbol inputType.

Related Methods
저작자 표시 비영리 변경 금지
신고

Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

Android Service에서 Activity 실행하기Android Service에서 Activity 실행하기

Posted at 2011.01.06 00:53 | Posted in About Programing/05. Android
크리에이티브 커먼즈 라이선스
Creative Commons License

Context context = getApplicationContext();
Intent intent = new Intent(context, Action.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
context.startActivity(intent); 
저작자 표시 비영리 변경 금지
신고

Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

Android에서 URI로 실제 파일 경로 가져오기Android에서 URI로 실제 파일 경로 가져오기

Posted at 2011.01.04 21:31 | Posted in About Programing/05. Android
크리에이티브 커먼즈 라이선스
Creative Commons License

/**
 * URI로 부터 실제 파일 경로를 가져온다.
 * @param uriPath URI : URI 경로
 * @return String : 실제 파일 경로
 */
public String getRealImagePath (Uri uriPath)
{
	String []proj = {MediaStore.Images.Media.DATA};
	Cursor cursor = managedQuery (uriPath, proj, null, null, null);
	int index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);

	cursor.moveToFirst();

	String path = cursor.getString(index);
	path = path.substring(5);

	return path;
}
저작자 표시 비영리 변경 금지
신고
  1. ksseo
    좋은 정보 잘 이용합니다.
  2. 상균
    감사합니다
  3. 감사합니다
    좋은 정보 감사합니다.
  4. 웅사마
    감사해요!! 짱!!
  5. 감사합니다.
    감사합니다 좋은정보입니다.
    cursor.close()가 필요할듯 싶습니다. ^^
  6. 김개발자
    실제경로가 이상한이름으로 저장되어서 멘붕돼고 있었는데 혹시나해서 검색해봤는데 역시나...
    님 메서드로 해결 봤는네요. 감사합니다. ㅎㅎ
  7. 좋은 정보 감사합니다.^^
    담아 갈께요~ ^^
  8. 감사합니다. Uri를 그냥 toString 하니까 이상한 경로가 나오더라고요.
    이걸 이용해 File 객체로 바꿨습니다.
  9. 티리얼
    오오오미.. 드디어 해결의 실마리가 보입니다!! 격하게 사랑해요!!
  10. 토레스
    이 코드를 사용해봤는데
    게임이 다운됩니다.
    유니티랑 자바랑 연결해서 안드로이드에 사진 경로를 받아오려는데
    쿼리를 사용하는 부분에서 게임이 팅겨버려서
    실제 경로를 받아오질 못합니다..
    해결방법 혹시 아시는분 계신가요?

Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

Activity Class나 View Class를 상속 받지 않는 Class의 startActivity() 함수 호출Activity Class나 View Class를 상속 받지 않는 Class의 startActivity() 함수 호출

Posted at 2011.01.04 15:32 | Posted in About Programing/05. Android
크리에이티브 커먼즈 라이선스
Creative Commons License
애니메이션이 들어가는 Menu 화면을 그린다고 Surface Class 를 상속받아서

생성한 클래스 안에서 startActivity 함수를 부르니 에러가 나왔다.

" the method startActivity(Intent) is undefined for the type "

이럴때는 getContext().startActivity(intent); 로 써보자.

그러면 startActivity 함수를 사용할 수 있다.
저작자 표시 비영리 변경 금지
신고

Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

Activity 생명 주기Activity 생명 주기

Posted at 2011.01.02 22:56 | Posted in About Programing/05. Android
크리에이티브 커먼즈 라이선스
Creative Commons License

저작자 표시 비영리 변경 금지
신고
  1. 비밀댓글입니다

Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

onTouchEventonTouchEvent

Posted at 2010.12.14 03:16 | Posted in About Programing/05. Android
크리에이티브 커먼즈 라이선스
Creative Commons License

@Override
	public boolean onTouchEvent(MotionEvent event, MapView mapView)
	{
		// Touch 한 곳의 X 좌표
		double xPoint = (double)event.getX();
		// Touch 한 곳의 Y 좌표
		double yPoint = (double)event.getY();
		// Touch Action 값
		int actionValue = event.getAction();
		
		switch (actionValue)
		{
		// Touch 했을 때
		case MotionEvent.ACTION_DOWN :			
			
			break;
			
		// Touch 땟을 때
		case MotionEvent.ACTION_UP :
			
			break;
			
		// Drag
		case MotionEvent.ACTION_MOVE :
			
			break;		
		}

		return super.onTouchEvent(event, mapView);
	}
저작자 표시 비영리 변경 금지
신고

Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

티스토리 툴바