티스토리 뷰
인텐트와 데이터 전달
1 2 | 안드로이드 어플리케이션(액티비티,서비스,브로드캐스트 수신자) -> 인텐트 모든것들이 연결되어 있다. 결국 인텐트 라는것은 안드로이드 시스템상에서 상당히 많이 왔다갔다 거리는 형식의 데이터이자 객체이다. 액티비티간의 데이터전달도 가능하다. | cs |
액션과 데이터를 사용하는 대표적인 예
속성 |
설명 |
ACTION_DIAL tel:01011111111 |
주어진 전화번호를 이용해 전화 걸기 화면을 보여줌
|
ACTION_VIEW tel:01011111111 |
주어진 전화번호를 이용해 전화걸기 화면을 보여준다. URI 값의 유형에 따라 VIEW 액션이 다른 기능을 수행함 |
ACTION_EDIT content://contacts/people/2 |
전화번호부 데이터베이스에 있는 정보 중에서 ID 값이 2인 정보를 편집하기 위한 화면을 보여준다 |
ACTION_VIEW content://contacts/people |
전화번호부 데이터베이스 내용을 보여줌 |
명시적 인텐트와 암시적 인텐트
1 2 3 4 5 6 7 8 | 명시적 인텐트(Explicit Intent) -인텐트에 클래스 객체나 컴포넌트 이름을 지정하여 호출할 대상을 확실히 알 수 있는 경우 암시적 인텐트(Implicit Intent) -액션과 데이터를 지정하긴 했지만 호출할 대상이 달라질 수 있는 경우 - 범주(catagory), 타입(Type), 컴포넌트(component),부가 데이터(extras) ex) http 같은 특정데이터를알아서 띄워주는것 | cs |
인텐트 안에 들어 가는 정보
1 2 3 4 5 6 7 8 9 10 11 12 | 1.범주(category) -액션이 실행되는데 필요한 추가적인 정보를 제공 2. 타입(Type) - 인텐트에 들어가는 데이터의 MIME 타입을 명시적으로 지정 3. 컴포넌트(Component) - 인텐트에 사용될 컴포넌트 클래스 이름을 명시적으로 지정 4. 부가 데이터(Extra) - 인텐트는 추가적인 정보를 넣을 수 있도록 번들(Bundle)객체를 담고 있음 - 이 객체를 통해 인텐트 안에 더 많은 정보를 넣어 다른 애플리케이션 구성요소에 전달할 수 있음. | cs |
Example_callIntent 프로젝트 생성
1 2 3 4 | 1. ConstraintLayout 안에 Button 및 Plain Text를 생성 시켜준다. 2. MainActivity.java로 이동한다. 여기서 가정할것은 MenuActivity가 생성되었다고 가정을 하고 intent2 의 객체를 활용한다고 한다) | cs |
1234567891011121314151617181920212223242526272829303132333435363738394041 package com.example.example_callintent;import android.content.ComponentName;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.Button;import android.widget.EditText;public class MainActivity extends AppCompatActivity {EditText editText; // 다른곳에서도 참조 하기 위해서.@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);editText = (EditText) findViewById(R.id.editText);Button button = (Button)findViewById(R.id.button);button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {String receiver = editText.getText().toString(); // 입력상자에서 가져온다 값을 그리고 receiver에 저장한다.Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:" + receiver)); // 이제 인텐트를 이해하고 쓰고있다startActivity(intent);// 인텐트에 정보를 넣을때 다른 방식도 있음.Intent intent2 = new Intent();ComponentName name = new ComponentName("com.example.example_callintent","com.example.example_callintent.MenuActivity");// (첫번째 파라미터: 패키지명,두 번째 파라미터 :패키지명.MenuActivity) 이렇게 하면 MenuActivity 패키지 네임정보를 얻음intent2.setComponent(name); //여기다가 컴포넌트 이름을 넣을것이다.startActivity(intent2);}});}}cs
PDF 파일을 여는 방식(인텐트 형식) - 추후 실습 할것(교재)
권한 정보(pdf를 사용하기위한)
pdf -> sd 카드 에 넣었다고 하면
1234 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>// sd카드 읽을수 있는 권한<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>// sd 카드 쓸수 있는 권한
1234567891011 // 앱이 실행 됬을 때도 manifests 권한 또한 주는것은 물론, gradle Script에 build gradle targetSdkVersion 22로 바꾸어 주어야 한다.// 마쉬멜로우 버전이후로는 위험권한으로 등록되어있다.defaultConfig {applicationId "com.example.example_callintent"minSdkVersion 15targetSdkVersion 25 -> 22로 바꿔주어야한다.(간단히 테스트시 22로 바꿔서 해준다)versionCode 1versionName "1.0"testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"}cs cs
- 마쉬멜로우 버전 이후 부터 위험권한이 22이후부터 적용되었으므로 22로 바꾸어준다.(버전낮추기)
- <화면>
'Android' 카테고리의 다른 글
[Android] 플래그의 활용 예제 (0) | 2017.09.21 |
---|---|
[Android] 액티비티를 위한 플래그와 부가 데이터 (0) | 2017.09.21 |
[Android]화면 구성과 화면 간 전환(인텐트) (0) | 2017.09.21 |
[Android] 애플리케이션 구성하기(인플레이션) (0) | 2017.09.21 |
[Android] 기본 위젯들(텍스트뷰,라디오버튼,체크박스) (0) | 2017.09.21 |
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 감자코딩
- 개발하는 관광이
- C langauge
- 감자개발자
- C언어
- 노드
- node.js
- 스프링
- MVC
- 텐서플로우
- 백준
- 학교
- 복습
- Algorigm
- programming
- 머신러닝
- 리버싱
- 코드엔진
- 알고리즘
- 안드로이드
- Spring
- 초보자를 위한 C언어 300제
- Android
- db
- TensorFlow
- BFS
- 프로그래밍
- node
- Controller
- 백준알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함