pyclick

안드로이드 핸드폰으로 메시지 보내기

작성자
sjpark
작성일
2025-04-24 19:09
조회
6

안드로이드 핸드폰으로 메시지 보내기

먼저 관련된 프로그램을 설치하고 설정을 하는 부분까지 해야 한다. 설치와 설정부분은 간략하게 나타내고, 코드에 집중해 보시기를 바랍니다. 가족 핸드폰으로 테스트해보니 잘 보내지네요

관련 프로그램을 설치
윈도우 ADB설치 https://developer.android.com/tools/releases/platform-tools?hl=ko
adb를 압축풀기

저는 C밑에 저장
C:\adb_tool
환경변수 설정 윈도우 입력창에 => 고급시스템설정

환경변수 : C:\adb_tool를 넣음, 이름은 android_adb_tool로 설정

path에 %android_adb_tool%\를 넣기
잘됐는지 확인 power shell을 오픈해서

adb를 입력후 엔터를 치면 뭐가 나오면 잘 설치 된것임
pc에 설치할 모듈 pip install pure-python-adb
실행
adb start-server power sheel에 이것을 하면, 서버가 실행됨
adb devices 실행된 서버에 연결된 장치가 있는지 확인하는 것, 만약에 없으면, 핸드폰 연결을 잘 살펴보거나 다시 실행해보기를 원함
adb kill-server 서버를 죽이는 것
핸드폰으로 메시지 보내기

 

import subprocess, time

def send_sms(phone_number, message):
try:
command = ['adb', 'shell', 'am','start', '-a',
'android.intent.action.SENDTO', '-d',
f'sms:{phone_number}',
'--es', 'sms_body',
f'"{message}"',
'--ez','exit_on_sent','true' ]
subprocess.run(command, check=True)
time.sleep(1) # 장치가 문자 입력 화면으로 전환될 시간을 고려하여 딜레이 추가
command_enter = ['adb', 'shell', 'input', 'touchscreen', 'tap', "1020", "1309"]
subprocess.run(command_enter, check=True)

return True
except subprocess.CalledProcessError as e:
print(f"adb 명령어 실행 중 오류가 발생했습니다: {e}")
return False
except FileNotFoundError:
print("adb 명령어를 찾을 수 없습니다. 설치된것과 PATH등의 환경 변수를 확인하세요.")
return False

recipient_number = "01040645260"
sms_text = "한번더 잘되나 테스트 해본거에요"

if send_sms(recipient_number, sms_text):
print("문자 전송 요청이 성공적으로 처리되었습니다.")
else:
print("문자 전송 요청에 실패했습니다.")

 

 

모르는 부분은 다른 자료들을 보시면 참고가 될것이며, 기본적으로 메시지를 쓰는 부분까지는 다들 잘 되는데, 마지막에 보내는 부분은 기본 기능으로 제공해주지를 않읍니다

그래서 생각해 낸게, 보통 메시지를 보내는 send버튼은 같은 위치에 있게 됩니다. 입력 문자셋이 천지인인지 아닌지에 따라서 위치가 다르긴 하지만, 같은 핸더폰은 여러줄을 쓰더라도 같다것에 착안해서, 이곳의 x,y축을 갖고와서 그곳을 맨마지막에 클릭하게 만들면 보내는 기능과 같을것이라 생각하고 해보니 잘되네요

그 실행 부분이 command_enter = ['adb', 'shell', 'input', 'touchscreen', 'tap', "1020", "1309"] 입니다

맨마지막 2개가 좌표이며, 만약 좌표를 알고싶으신분은

설정 => 개발자 옵션 => 포인터 위치 => 활성화 시키면 위에 나타납니다
전체 0

전체 1
번호 제목 작성자 작성일 추천 조회
1
New 안드로이드 핸드폰으로 메시지 보내기
sjpark | 25.04.24 | 추천 0 | 조회 6
sjpark 25.04.24 0 6