<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:mimeType="application/octet-stream"
android:scheme="file" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="*"
android:mimeType="*/*"
android:scheme="file" />
<data android:pathPattern=".*\\.aaa" />
<data android:pathPattern=".*\\.aaa" />
<data android:pathPattern=".*\\..*\\.aaa" />
<data android:pathPattern=".*\\..*\\..*\\.aaa" />
<data android:pathPattern=".*\\..*\\..*\\..*\\.aaa" />
<data android:pathPattern=".*\\..*\\..*\\..*\\..*\\.aaa" />
<data android:pathPattern=".*\\..*\\..*\\..*\\..*\\..*\\.aaa" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:mimeType="application/octet-stream"
android:scheme="content" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="*"
android:mimeType="*/*"
android:scheme="content" />
<data android:pathPattern=".*\\.aaa" />
<data android:pathPattern=".*\\..*\\.aaa" />
<data android:pathPattern=".*\\..*\\..*\\.aaa" />
<data android:pathPattern=".*\\..*\\..*\\..*\\.aaa" />
<data android:pathPattern=".*\\..*\\..*\\..*\\..*\\.aaa" />
<data android:pathPattern=".*\\..*\\..*\\..*\\..*\\..*\\.aaa" />
</intent-filter>
http://ankyu.entersoft.kr/Lecture/android/activity_05.asp
안드로이드 > 인텐트(Intent) 1. URI(Uniform Resource Identifier) : 인텐트 자료에서 사용하는 URI는 자바에서 제공하는 URI 클래스와 안드로이드 내부에서 사용하는 URI 클래스로 제공한다. 즉, 자바에서 제공하는 URI 클래스는 일반적인 인터넷이나 웹 사이트를 지칭할 때 사용하며, URI 클래스는 안드로이드 내부 자료를 가리키거나 또는 콘텐트프로바이더와 같은 컴포넌트에서 사용하는 클래스이다. 2. [scheme:][//기관][경로][?쿼리][#fragment] - 스킴(schema) : 프로토콜은 통신상에서 사용하는 용어이고 URI 에서는 'http', 'content', 그리고 'tel' 등과 같은 프로토콜을 스킴(Scheme)이라 부른다. - 기관(Authority) : 기관은 다른 자료를 구분하기 위해 사용한다. content 스킴을 사용하는 경우 강제 규정은 아니지만 'com.android.example'와 같이 자바 고유 패키지 이름을 사용한다. 보다 일반적인 http는 인터넷 주소 규정에 따라 'www.google.com'으로 표기하게 된다. - 경로(PATH) : 구체적인 자료의 위치를 나타낸다. - 쿼리(Query) : 물음표('?') 뒤에 위치하여 추가적인 자료의 검색을 요구한다. - 프레그먼트(fragment) : 자료를 분류한 색인이다. 안드로이드 액티비티매니저는 인텐트와 함께 자료 타입을 기준으로 전달할 컴포넌트를 선정하게 된다. 대부분 URI를 보고 추측할 수 있지만 가끔 URI를 보고 추측할 수 있지만 가끔 URI만으로 판단하기 어려운 경우, 추가적인 정보로 자료 타입(MIME 타입)을 참조한다. - setData() 메서드는 URI만 사용해서 자료를 지정하며, getData()에 의해 읽혀지게 된다. - setType()은 MIME 타입을 지정하며, getType()에 의해 읽는다. - setDataAndType()은 URI와 MIME 타입 모두 다 지정할 수 있다. 아래는 안드로이드 매니페스트에서 사용하는 MIME 타입의 예이다. 하위타입 필드는 '*'와 같이 와일드카드를 사용할 수 있다.
<data android:scheme="file" /< <data android:scheme="content" /< <data android:mimeType="text/html" /< <data android:mimeType="text/plain" /< <data android:mimeType="audio/*" /< <data android:mimeType="video/*" /< <data android:mimeType="image/*" /< <data android:mimeType="application/vnd.android.package-archive" /< <data android:mimeType="text/xml" /< <data android:mimeType="application/zip" /< <data android:mimeType="image/tiff" /< <data android:mimeType="application/rtf" /< <data android:mimeType="application/excel" /< <data android:mimeType="application/msword" /< <data android:mimeType="video/mpeg" android:scheme="http" /<
public class MainActivity extends Activity { public static final String DEBUG_TAG = "MainActivity"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button goButton = (Button)findViewById(R.id.go); goButton.setOnClickListener(mGoListener); } private final OnClickListener mGoListener = new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("audio/*"); try { startActivity(Intent.createChooser(intent, "select music")); } catch (ActivityNotFoundException e) { // TODO: handle exception Log.e(DEBUG_TAG, "ActivityNotFoundException !!!"); } } }; }
// 웹브라우저를 사용하여 웹사이트를 호출하는 방법 Intent result = null; Uri cafeUri = Uri.parse("http://www.google.com"); result = new Intent(Intent.ACTION_VIEW, cafeUri); // Google map 호출하는 방법 Uri mapUri = Uri.parse("geo:45.5,-5,5"); result = new Intent(Intent.ACTION_VIEW, mapUri); // 전화 걸기 방법 Uri telUri = Uri.parse("tel:01066542126"); result = new Intent(Intent.ACTION_DIAL, telUri); // 패키지 설치 작업 Uri packageUri = Uri.fromParts("package", "xxx", null); result = new Intent(Intent.ACTION_PACKAGE_ADDED, packageUri); result = new Intent(Intent.ACTION_DELETE, packageUri); // 음악 호출 Uri playUri = Uri.parse("file://sdcard/download/everything.mp3"); result = new Intent(Intent.ACTION_VIEW, playUri); // 이메일 전송 Uri emailUri = Uri.parse("maito:root@gmail.com"); result = new Intent(Intent.ACTION_SENDTO, emailUri);
다음은 일반적인 확장자로 정렬된, 문서 타입과 관련된 MIME 타입의 포괄적인 목록입니다.
두 개의 주요 MIME 타입은 기본 타입에 있어 중요한 역할을 합니다:
text/plain는 텍스트 파일을 위한 기본값입니다. 텍스트 파일은 인간이 읽을 수 있어야 하며 이진 데이터를 포함해서는 안됩니다.
application/octet-stream는 다른 모든 경우를 위한 기본값입니다. 알려지지 않은 파일 타입은 이 타입을 사용해야 합니다. 브라우저들은 이런 파일들을 다룰 때, 사용자를 위험한 동작으로부터 보호하도록 개별적인 주의를 기울여야 합니다.
IANA는 MIME 미디어 타입의 공식적인 레지스트리로 list공식적인 MIME 타입의 전체 목록을 관리합니다. 다음 표에 웹에 대한 몇 가지 중요한 MIME 타입들이 나와 있습니다: