본문 바로가기
프로그래밍/안드로이드

[안드로이드] Intent 로 이메일 전송 기능 만들기

by dev_gyu 2025. 3. 6.
728x90

오늘 잠깐 플레이스토어를 보던 도중 개발자 계정에 경고 조치가 내려진 것을 확인하였다.

내용은 AI 를 사용한 앱의 경우 내부적으로 개발자에게 신고하기 기능을 만들어야 한다는 것..

하지만 내 앱의 경우 이러한 기능이 없었고 아주 예전에 만들었었던 Intent 를 통한 이메일 보내기 기능을 구현해보기로 하였다.

fun sendReportImageData2(context: Context, fluxImageRes: FluxImageRes){
    val intent = Intent(Intent.ACTION_SEND).apply {
        type = "text/plain"
        putExtra(Intent.EXTRA_EMAIL, arrayOf("testest@gmail.com"))
        putExtra(Intent.EXTRA_SUBJECT, "Report KoreAI Image")
        putExtra(Intent.EXTRA_TEXT, "prompt = ${fluxImageRes.prompt}\n\nseed =${fluxImageRes.seed}")
    }

    context.startActivity(intent)
}

 

 

 예전에는 위와 같은 코드로 메일 전송 기능을 구현하였던 것으로 기억하기에 이를 따라하였으나, 문제가 생겼다.

위의 코드를 실행하면 자꾸 이상한 앱들이 열리는 것이다.

 

이를 위해 서칭을 좀 해보니 SEND 가 아닌 SENDTO 를 사용해야 한다고 하더라.

또한 ANDROID 12 부터는 아래 쿼리를 추가해줘야한다고 하여 이도 추가해주었다.

<queries>
    <intent>
        <action android:name="android.intent.action.SENDTO" />
        <data android:scheme="*" />
    </intent>
</queries>

 


    fun sendReportImageData(context: Context, fluxImageRes: FluxImageRes){
        val intent = Intent(Intent.ACTION_SENDTO).apply {
            data = Uri.parse("mailto:")
            putExtra(Intent.EXTRA_EMAIL, arrayOf("testest@gmail.com"))
            putExtra(Intent.EXTRA_SUBJECT, "Report KoreAI Image")
            putExtra(Intent.EXTRA_TEXT, "prompt = ${fluxImageRes.prompt}\n\nseed =${fluxImageRes.seed}")
        }

        context.startActivity(intent)
    }

 

위의 기능 + 버튼 구현을 통해 개발자에게 신고하기 기능을 대충 구현하였고, 생성된 이미지 내에서는 다음과 같이 확인할 수 있었다.

 

위의 이미지 신고하기 버튼을 누르면 아래와 같이 자동적으로 메일을 보낼 수 있게 된다 !

 


무척이나 간단하지만 너무 오래간만에 쓰는 기능이라 아예 까먹고 있었다 ..

다음부터 이를 까먹지 않기 위해 글을 작성하였으니, 다음에는 안까먹으리라 다짐한다.

728x90