반응형

똠프가 개인정보처리방침

<국내와 태국 비트코인 비교 앱(똠냥꿍 프리미엄 가격)>(‘jm-son.tistory.com’, 이하 ‘개발자’)의 '똠프가'(이하 ‘서비스’)은(는) 개인정보보호법에 따라 이용자의 개인정보 보호 및 권익을 보호하고 개인정보와 관련한 이용자의 고충을 원활하게 처리할 수 있도록 다음과 같은 처리방침을 두고 있습니다.

회사의 서비스 개인정보처리방침을 개정하는 경우 웹사이트 공지사항(또는 개별공지)을 통하여 공지할 것입니다.

 

 

1. 개인정보 처리목적

서비스는 개인정보를 다음의 목적을 위해 처리합니다. 처리한 개인정보는 다음의 목적이외의 용도로는 사용되지 않으며 이용목적이 변경될 시에는 사전동의를 구할 예정입니다.

가. 신규 서비스 개발 및 부가 서비스 지원
나. 사용자 관리
다. 서비스 기능 정상 동작

 

2. 개인정보 수집항목

가. 기기 정보
  - android.permission.RECEIVE_BOOT_COMPLETED
  - android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS

 

3. 개인정보 수집방법

서비스는 다음과 같은 방법으로 개인정보를 수집합니다.

- 서비스란 '똠프가' 서비스를 지원하기 위한 서버 및 어플리케이션을 의미

 

 

4. 개인정보의 보유 및 이용기간 및 파기

1) 서비스는 법령에 따른 개인정보 보유·이용기간 또는 정보주체로부터 개인정보를 수집시에 동의 받은 개인정보 보유,이용기간 내에서 개인정보를 처리,보유합니다.
2) 개인정보 처리 및 보유 기간, 파기방법은 다음과 같습니다.

1. 기기 정보(기기 정보)
2. 파기 시점 : 앱 삭제 시

 

5. 개인정보의 기술적/관리적 보호 대책

개인정보보호법 제29조에 따라 다음과 같이 안전성 확보에 필요한 기술적/관리적 대책을 강구하고 있습니다.

가. 기술적인 대책
1. 기기 정보(기기 정보)
- 서비스는 이용자의 개인정보를 외부에 별도 저장 하지 않고 서비스 내부에 저장되어 있으며, 저장된 정보는 제3자 접근 차단 및 서비스 이외 목적으로는 사용하지 않고 있습니다.

 

6. 개인정보 보호책임자 작성

회사의 서비스는 개인정보 처리에 관한 업무를 총괄해서 책임지고, 개인정보 처리와 관련한 정보주체의 불만처리 및 피해구제 등을 위하여 아래와 같이 개인정보 보호책임자를 지정하고 있습니다.
[개인정보 관리자]
- 이메일 : j-mogi@kakao.com

 

7. 개인정보 처리방침 변경

1) 이 개인정보처리방침은 시행일로부터 적용되며, 법령 및 방침에 따른 변경내용의 추가, 삭제 및 정정이 있는 경우에는 변경사항의 시행 7일 전부터 공지사항을 통하여 고지할 것입니다.

 

 

본 개인정보처리방침은 2022년 3월 1일부터 시행됩니다.
반응형
반응형

오랜만에 포스팅을 하게 됬습니다 ㅋㅋ (요즘 일에 계속 치여서...)

 

무튼...

 

요즘 음성명령으로 피드백을 받는 구글 어시스턴트(링크 : 구글 어시스턴트 앱정보)라는 어플을 많이 보셨을껍니다.

이걸 사용하려 했더니 자료가 어려운거 같아 나름대로 정리를 해봅니다.

 

처음 시작하시는 분들은 도움이 되시길 바라면서 ㅎㅎ 시작할께요 ㅎㅎ 

 

반응형

 

 


 

구글 어시스턴트처럼 음성 처리를 하기위한 방식을 적용해야 합니다.

그런 방식을 처리하기위해 Google Actions을 바로 사용할 수도 있지만 사용하기엔 난해할 수 있습니다.

https://developers.google.com/assistant

 

Google Assistant  |  Google Developers

The developer platform for the Google Assistant.

developers.google.com

 

그래서 지원하는게 바로 DialogFlow!!!

 

이 DialogFlow 부터 천천히 알아가보도록 합시다.

 

순서는 간략하게 아래와 같음

1. DialogFlow Agent 생성 : (지금여기임)
2. 사용자 음성을 구분 할 Entitles 입력
3. 사용자 음성을 받은 뒤 처리 동작을 위한 Intent 입력
4. 기본동작 확인(여기까지면 기본동작은 함)
5. Response를 기본동작이 아닌 코드로 작성 가능한 Fulfillment 작성1 : Inline Edit
6. Response를 기본동작이 아닌 코드로 작성 가능한 Fulfillment 작성2 : Webhook

 

일단 Agent 생성부터 진행하도록 합시다~!!

 

1. DialogFlow 접속

https://dialogflow.cloud.google.com/#/getStarted

 

Dialogflow

Updating Actions on Google...

dialogflow.cloud.google.com

DialogFlow 초기접속화면

설명을 위해 반말로 하겠습니다. 양해 부탁드려요^^;; ㅎㅎ 

 

해당 페이지에 접속하면 첫페이지는!!! 당연히 아무것도 없다 ㅋㅋㅋ 

여기서 우린 Agent 를 생성할꺼임

 

Agent 는 프로젝트라고 생각하면 편함ㅎㅎ 

 

좌측 Create Agent 를 클릭~!! 

Create Agent 화면

 

Agent 이름을 적당히 정해주시고 ㅎㅎ (전 DialogFlow-Test라고 정했음)

Default Language(기본언어)는 클릭 후 한국어로 변경해 주고

GoogleProject 는 생성하는걸로 정해주시고 ㅎㅎ

 

CREATE 클릭~!!

그러면 WORKING 으로 바뀌면서 열심히 생성을 할꺼임 ㅎㅎ (시간이 좀 걸림)

 

이거 되는거 맞아? 렉걸리거 아니야? 라고 생각될 때 쯤~~~~~ 화면이 쨔잔~!!!

 

해당 화면이 나오면 Agent 는 정상생성 된것임 ㅎㅎ 

시험삼아 동작확인을 한번 해볼까??

 

우측에 'Try it now' 클릭 후 '안녕' 을 입력해보자 ㅎㅎㅎ 

그러면 아래처럼 쨔잔~~~~

 

'안녕' 단어에 대한 Response 처리 결과

 

Response 로 '안녕하세요!' 가 출력됨을 볼 수 있다 ㅎㅎㅎ 

간단한 동작시험은 여기서 할 수 있음 ㅎㅎ 

 

Agent 생성이 됬으니 이제 우리가 설정하고 싶은 단어를 처리하기위해 속성값들을 넣어줘야 한다 ㅎㅎ 

이건 다음편에서 정리하도록 하겠음 ㅎㅎ 

 

SMALL

 

반응형
반응형

하아... 과제가 떨어졌는데 음...

 

구글 어시스턴트나 삼성 SmartThings 에 기존 앱을 연동하기 위한 방안을 가지고 오라는.....특명....

 

앱을 만들다 보니깐 계속 갈때까지 가네요... 

 

일단 정보 검색을 대강 해보니깐 단말기를 해당 어플에 연동하는 방법만 많이있지 어떻게 개발해야하는지 내용은 많이 보이진 않던데.... 음.... 

 

일단 자료조사부터 시작합니다... 

 

이번주는 이걸로 시간 잘~ 갈꺼같네요 아하하하하..... 쿨럭...

반응형

정리되면 내용 공유드릴께요... ㅎㅎ 

반응형
반응형

안드로이드 코드를 작성하다보면

android.view.WindowManager$BadTokenException

위 같은 BadTokenException 유형의 에러가 확인될 때가 있다.

 

해당 문제에 대하여 원인파악 및 조치방안을 확인해보자

 

 

일단 위치를 확인하면 WindowManager 아래에 있는 함수다.

 

그럼 WindowManager 는 어떤건가?

[공식문서]

 

WindowManager  |  Android 개발자  |  Android Developers

WindowManager Jetpack WindowManager 라이브러리를 사용하면 애플리케이션 개발자가 새로운 기기 폼 팩터와 멀티 윈도우 환경을 지원할 수 있습니다. 라이브러리는 API 버전 14 이상에서 공통 API 노출 영역

developer.android.com

 

간단하게는 화면 표출에 관련된 함수다.. 그럼 왜 BadTokenException 이 발생하는걸까??

 

화면에 출력을 해줄려고 했는데 !! 

해당 Activity 가 동작하지 않는 경우에 발생한다!!!

반응형

 

그럼 심플하게 생각하면 

 

해당 Activity 가 동작중인지 체크만 추가해주면? ㅎㅎ 해결된다.

 

어떻게??

 

아래처럼 ㅎㅎ 

Activity.this.isFinishing() 조건식을 확인해보면 가능!! 

try {
    // Activity 동작 확인 조건식 추가
    if(!Activity_Connect.this.isFinishing()) {
        TextView tv = new TextView((Activity) CurrentOBJ);
        tv.setText("Dialog 타이틀");
        tv.setTextColor(0xFFFF8000);
        tv.setPadding(70, 50, 20, 30);
        tv.setTextSize(20F);
        AlertDialog.Builder builder = new AlertDialog.Builder((Activity) CurrentOBJ);
        builder.setCustomTitle(tv)
                .setMessage("본문 내용")
                .setPositiveButton("확인",
                        (dialog, which) -> {
                            //확인 클릭 시 동작 처리
                        })
                .setNegativeButton("취소",
                        (dialog, which) -> {
                            //취소 클릭 시 동작 처리
                        })
                .setCancelable(false)
                .show();
    }
}catch (WindowManager.BadTokenException e){
    e.printStackTrace();
}
SMALL

조건식으로 확인 후 동작하게되면 에러는 사라지게 됨 ㅎㅎ 

 

간단한 예외처리 완료 ㅎㅎ 

반응형
반응형

오늘은 간단하게 사용 가능한 파일이동 함수를 알아보겠음... 

 

A 위치에서 B 위치고 파일을 이동시키고 싶을 때 미디어파일이나 기타등등 파일이동을 시키고 싶은 때 간단하게 사용가능한 함수를 공유합니다

반응형

Function : MOVE_FILE

    /**
     * @param context : Context
     * @param inputPath : 원본 파일 Path 
     * @param inputFile : 원본 파일 이름
     * @param outputPath : 옮길 폴더 경로
     */
    public static void MOVE_FILE(Context context, String inputPath, String inputFile, String outputPath){
        InputStream in = null;
        OutputStream out = null;
        try{
            File dir = new File(outputPath);
            Log.e("dir", dir.getPath());
            if(!dir.exists()){
                dir.mkdirs();
            }

            Log.e("MOVE_FILE", outputPath + "/" + inputFile + "______" + dir.getPath());

            in = new FileInputStream(inputPath + inputFile);
            out = new FileOutputStream(outputPath + "/" + inputFile);

            byte[] buffer = new byte[1024];
            int read;
            while((read = in.read(buffer)) != -1){
                out.write(buffer, 0, read);
            }
            in.close();
            in = null;

            out.flush();
            out.close();
            out = null;

            // 기존 원본파일 삭제
            new File(inputPath + inputFile).delete();
            
            // 파일 미디어 동기화 , 사진 혹은 동영상 파일 갤러리 동기화
            File tmp_file = new File(outputPath + "/" + inputFile);
            context.sendBroadcast(new Intent( Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(tmp_file)) );
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
SMALL

아시는 분은 아시겠지만 사용법은 간단합니다.

 

파라미터 설명
inputPath  원본파일 Path
inputFile  원본파일 이름
outputPath  이동할 폴더 경로

 

해당 파라미터에 대한 값을 입력 후 동작시키면 원본파일은 이동할 폴더에 원본 파일명으로 생성된 뒤 원본파일은 삭제처리 됨... ㅎㅎ 

 

 

반응형

+ Recent posts