-
안드로이드에서 오는 문자 메시지를 자동으로 텔레그램으로 보내는 간단한 앱을 만들기I.T 공부방 2024. 8. 12. 12:36반응형
참고.쳇지피티
### **목표**
안드로이드에서 오는 문자 메시지를 자동으로 텔레그램으로 보내는 간단한 앱을 만드는 것입니다.
### **1. 앱의 기본 개념**
- **문자 메시지(SMS)를 감지**하는 기능을 앱에 넣고,
- 감지된 문자 메시지를 **텔레그램**으로 보내는 기능을 추가합니다.
### **2. 단계별 구현**
#### **A. 기본 앱 설정**
1. **새로운 Android 프로젝트 만들기**
- Android Studio를 열고 "New Project"를 선택하여 새 프로젝트를 생성합니다.
- 프로젝트 이름을 정하고 최소 SDK를 설정한 후, 빈 액티비티(Empty Activity)를 선택합니다.
2. **필요한 권한 추가**
- `AndroidManifest.xml` 파일에서 앱이 문자 메시지를 감지할 수 있도록 `RECEIVE_SMS` 권한을 추가합니다.
```xml
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
```
#### **B. 문자 메시지 감지하기**
1. **BroadcastReceiver 클래스 만들기**
- 문자 메시지를 받을 때 감지하는 코드를 작성해야 합니다. `SmsReceiver`라는 클래스를 만듭니다.
```java
public class SmsReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// 메시지를 감지하면 실행되는 코드
Bundle bundle = intent.getExtras();
if (bundle != null) {
// 문자 메시지를 추출하는 코드
Object[] pdus = (Object[]) bundle.get("pdus");
for (Object pdu : pdus) {
SmsMessage smsMessage = SmsMessage.createFromPdu((byte[]) pdu);
String sender = smsMessage.getDisplayOriginatingAddress(); // 발신자 번호
String messageBody = smsMessage.getMessageBody(); // 메시지 내용
// 메시지를 로그로 출력해 보기
Log.d("SmsReceiver", "From: " + sender + ", Message: " + messageBody);
}
}
}
}
```
2. **Receiver 등록하기**
- `AndroidManifest.xml`에 `SmsReceiver`를 등록합니다.
```xml
<receiver android:name=".SmsReceiver">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
</receiver>
```
#### **C. 텔레그램으로 메시지 보내기**
1. **텔레그램 봇 생성**
- 텔레그램에서 `@BotFather`를 찾아가서 새 봇을 생성합니다.
- 봇을 생성하고 `API 토큰`을 받습니다.
2. **메시지를 텔레그램으로 보내는 코드 추가**
- 문자 메시지를 수신한 후, 이를 텔레그램으로 보내는 코드를 추가합니다.
```java
private void sendToTelegram(String sender, String message) {
String apiToken = "YOUR_BOT_API_TOKEN";
String chatId = "YOUR_CHAT_ID";
String text = "From: " + sender + "\nMessage: " + message;
String urlString = "https://api.telegram.org/bot" + apiToken + "/sendMessage?chat_id=" + chatId + "&text=" + text;
new Thread(new Runnable() {
@Override
public void run() {
try {
URL url = new URL(urlString);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.getResponseCode();
conn.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
}
```
3. **텔레그램 메시지 전송 기능 연결**
- 문자 메시지가 감지되면 자동으로 `sendToTelegram` 메서드가 호출되도록 합니다.
```java
public class SmsReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
if (bundle != null) {
Object[] pdus = (Object[]) bundle.get("pdus");
for (Object pdu : pdus) {
SmsMessage smsMessage = SmsMessage.createFromPdu((byte[]) pdu);
String sender = smsMessage.getDisplayOriginatingAddress();
String messageBody = smsMessage.getMessageBody();
// 문자 메시지를 텔레그램으로 전송
sendToTelegram(sender, messageBody);
}
}
}
private void sendToTelegram(String sender, String message) {
// 위에서 설명한 코드
}
}
```
### **3. 앱 테스트하기**
- 앱을 설치한 후 문자 메시지를 보내고, 텔레그램에서 해당 메시지가 전송되는지 확인해봅니다.
### **4. 다음 단계**
- 처음에는 복잡하게 느껴질 수 있지만, 위의 코드와 설명을 하나씩 따라 해 보세요. 만약 어느 부분이 어려운지 알려주시면, 더 자세히 설명해 드리겠습니다.
이렇게 간단한 앱을 만들어 보면서 Android와 텔레그램 API 사용에 익숙해질 수 있을 것입니다.반응형'I.T 공부방' 카테고리의 다른 글
GIS 플랫폼 활용법: 공간 데이터 분석과 시각화 (14) 2024.09.22 리눅스 기초용어 50 (1) 2024.08.04