본문 바로가기

프로그래밍/안드로이드

카카오톡 암시적 인텐트와 액티비티 사용으로 메시지 보내기





카카오톡 인텐트 메시지 전송 동작은 이전에는 작동이 되었으나 현재는 막혀진 상태이다.


그러나 일반적인 ACTION_SEND 암시적 인텐트상황에서는 카카오톡도 자신의 앱을 써달라는 듯이 당당히 얼굴을 내비친다.


그래서 이것을 활용하여 암시적 인텐트를 사용하는 동시에


액티비티 리스트에 "kakao.talk"이 들어 있는 액티비티 문자열을 확인하여 카카오톡에 꼭 찝어 문자를 전송 할수 있게 만들었다.


해당 코드는 아래와 같다.

       


         Intent intent = new Intent(android.content.Intent.ACTION_SEND);

         intent.setType("text/plain");

         String smsBody = "메시지 내용 블라블라";

         PackageManager pm = context.getPackageManager();

         List<ResolveInfo> activityList = pm

               .queryIntentActivities(intent, 0);


         for (ResolveInfo app : activityList) {

            if ((app.activityInfo.name).contains("kakao.talk")) {

               ActivityInfo activity = app.activityInfo;

               ComponentName name = new ComponentName(

                     activity.applicationInfo.packageName, activity.name);



               intent.setComponent(name);

               intent.addCategory(Intent.CATEGORY_DEFAULT);

               intent.putExtra(Intent.EXTRA_TEXT, smsBody);

               intent.setType("text/plain");  

               context.startActivity(intent);

               

               

            }

         }