diff --git a/README.md b/README.md
index 43618cdc..1f9cf3b7 100644
--- a/README.md
+++ b/README.md
@@ -47,6 +47,8 @@ Android手机监听短信并根据指定规则转发到其他手机:钉钉机
- [x] 转发到webhook(支持:单个web页面([向设置的url发送POST请求](doc/POST_WEB.md)))
- [x] 转发到企业微信群机器人
- [x] 转发到企业微信应用消息
+- [x] 转发到ServerChan(Server酱·Turbo版)
+- [x] 转发到Telegram机器人
- [x] 在线检测新版本、升级
- [x] 清理缓存
- [x] 兼容6.xx、7.xx、8.xx、9.xx、10.xx
@@ -89,12 +91,14 @@ Android手机监听短信并根据指定规则转发到其他手机:钉钉机
|  |  |
| 添加/编辑发送方网页通知 | 添加/编辑发送方企业微信群机器人 |
|  |  |
+| 添加/编辑发送方Telegram机器人 | 添加/编辑发送方Server酱·Turbo版 |
+|  |  |
| 添加/编辑发送方企业微信应用 | 应用设置 |
|  |  |
| 关于/在线升级 | 支持正则匹配规则 & 支持卡槽匹配规则 |
|  |  |
-| 转发短信模板增加卡槽标识 | 添加/编辑发送方Server酱·Turbo版 |
-|  |  |
+| 转发短信模板增加卡槽标识 | |
+|  | |
--------
@@ -117,6 +121,7 @@ Android手机监听短信并根据指定规则转发到其他手机:钉钉机
+ [v1.5.2](app/release/SmsForwarder_release_20210311_1.5.2.apk) 支持标注卡槽号码(优先使用)、设备信息;自定义转发信息模版
+ [v1.6.0](app/release/SmsForwarder_release_20210312_1.6.0.apk) 优化获取SIM信息(兼容高版本Android) & 自动填写设备备注 & 自动填充卡槽信息到SIM1备注/SIM2备注 & 支持卡槽匹配规则 & 支持正则匹配规则
+ [v1.6.1](app/release/SmsForwarder_release_20210312_1.6.1.apk) 新增转发到Server酱·Turbo版
+ + [v1.6.2](app/release/SmsForwarder_release_20210312_1.6.2.apk) 新增转发到Telegram机器人
--------
diff --git a/app/release/SmsForwarder_release_20210312_1.6.2.apk b/app/release/SmsForwarder_release_20210312_1.6.2.apk
new file mode 100644
index 00000000..3673285b
Binary files /dev/null and b/app/release/SmsForwarder_release_20210312_1.6.2.apk differ
diff --git a/app/release/output-metadata.json b/app/release/output-metadata.json
index 50b71be6..d276d06f 100644
--- a/app/release/output-metadata.json
+++ b/app/release/output-metadata.json
@@ -10,9 +10,9 @@
{
"type": "SINGLE",
"filters": [],
- "versionCode": 17,
- "versionName": "1.6.1",
- "outputFile": "SmsForwarder_release_20210312_1.6.1.apk"
+ "versionCode": 18,
+ "versionName": "1.6.2",
+ "outputFile": "SmsForwarder_release_20210312_1.6.2.apk"
}
]
}
\ No newline at end of file
diff --git a/app/src/main/java/com/idormy/sms/forwarder/FrontService.java b/app/src/main/java/com/idormy/sms/forwarder/FrontService.java
index 772643ee..993b31f7 100644
--- a/app/src/main/java/com/idormy/sms/forwarder/FrontService.java
+++ b/app/src/main/java/com/idormy/sms/forwarder/FrontService.java
@@ -30,7 +30,7 @@ public class FrontService extends Service {
if (romType == OSUtils.ROM_TYPE.MIUI_ROM) {
builder.setContentTitle("短信转发器");
}
- builder.setContentText("根据规则转发到钉钉/微信/邮箱/bark/Server酱/webhook等");
+ builder.setContentText("根据规则转发到钉钉/微信/邮箱/bark/Server酱/Telegram/webhook等");
Intent intent = new Intent(this, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity
(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
diff --git a/app/src/main/java/com/idormy/sms/forwarder/SenderActivity.java b/app/src/main/java/com/idormy/sms/forwarder/SenderActivity.java
index b2e2b0ce..2ca78ae8 100644
--- a/app/src/main/java/com/idormy/sms/forwarder/SenderActivity.java
+++ b/app/src/main/java/com/idormy/sms/forwarder/SenderActivity.java
@@ -28,6 +28,7 @@ import com.idormy.sms.forwarder.model.vo.EmailSettingVo;
import com.idormy.sms.forwarder.model.vo.QYWXAppSettingVo;
import com.idormy.sms.forwarder.model.vo.QYWXGroupRobotSettingVo;
import com.idormy.sms.forwarder.model.vo.ServerChanSettingVo;
+import com.idormy.sms.forwarder.model.vo.TelegramSettingVo;
import com.idormy.sms.forwarder.model.vo.WebNotifySettingVo;
import com.idormy.sms.forwarder.sender.SenderBarkMsg;
import com.idormy.sms.forwarder.sender.SenderDingdingMsg;
@@ -35,6 +36,7 @@ import com.idormy.sms.forwarder.sender.SenderMailMsg;
import com.idormy.sms.forwarder.sender.SenderQyWxAppMsg;
import com.idormy.sms.forwarder.sender.SenderQyWxGroupRobotMsg;
import com.idormy.sms.forwarder.sender.SenderServerChanMsg;
+import com.idormy.sms.forwarder.sender.SenderTelegramMsg;
import com.idormy.sms.forwarder.sender.SenderUtil;
import com.idormy.sms.forwarder.sender.SenderWebNotifyMsg;
import com.umeng.analytics.MobclickAgent;
@@ -51,6 +53,7 @@ import static com.idormy.sms.forwarder.model.SenderModel.TYPE_EMAIL;
import static com.idormy.sms.forwarder.model.SenderModel.TYPE_QYWX_APP;
import static com.idormy.sms.forwarder.model.SenderModel.TYPE_QYWX_GROUP_ROBOT;
import static com.idormy.sms.forwarder.model.SenderModel.TYPE_SERVER_CHAN;
+import static com.idormy.sms.forwarder.model.SenderModel.TYPE_TELEGRAM;
import static com.idormy.sms.forwarder.model.SenderModel.TYPE_WEB_NOTIFY;
public class SenderActivity extends AppCompatActivity {
@@ -127,6 +130,9 @@ public class SenderActivity extends AppCompatActivity {
case TYPE_SERVER_CHAN:
setServerChan(senderModel);
break;
+ case TYPE_TELEGRAM:
+ setTelegram(senderModel);
+ break;
default:
Toast.makeText(SenderActivity.this, "异常的发送方类型,自动删除!", Toast.LENGTH_LONG).show();
if (senderModel != null) {
@@ -208,6 +214,9 @@ public class SenderActivity extends AppCompatActivity {
case TYPE_SERVER_CHAN:
setServerChan(null);
break;
+ case TYPE_TELEGRAM:
+ setTelegram(null);
+ break;
default:
Toast.makeText(SenderActivity.this, "暂不支持这种转发!", Toast.LENGTH_LONG).show();
break;
@@ -947,6 +956,104 @@ public class SenderActivity extends AppCompatActivity {
});
}
+ //Telegram机器人
+ private void setTelegram(final SenderModel senderModel) {
+ TelegramSettingVo telegramSettingVo = null;
+ //try phrase json setting
+ if (senderModel != null) {
+ String jsonSettingStr = senderModel.getJsonSetting();
+ if (jsonSettingStr != null) {
+ telegramSettingVo = JSON.parseObject(jsonSettingStr, TelegramSettingVo.class);
+ }
+ }
+
+ final AlertDialog.Builder alertDialog71 = new AlertDialog.Builder(SenderActivity.this);
+ View view1 = View.inflate(SenderActivity.this, R.layout.alert_dialog_setview_telegram, null);
+
+ final EditText editTextTelegramName = view1.findViewById(R.id.editTextTelegramName);
+ if (senderModel != null) editTextTelegramName.setText(senderModel.getName());
+ final EditText editTextTelegramApiToken = view1.findViewById(R.id.editTextTelegramApiToken);
+ if (telegramSettingVo != null)
+ editTextTelegramApiToken.setText(telegramSettingVo.getApiToken());
+ final EditText editTextTelegramChatId = view1.findViewById(R.id.editTextTelegramChatId);
+ if (telegramSettingVo != null)
+ editTextTelegramChatId.setText(telegramSettingVo.getChatId());
+
+ Button buttonTelegramOk = view1.findViewById(R.id.buttonTelegramOk);
+ Button buttonTelegramDel = view1.findViewById(R.id.buttonTelegramDel);
+ Button buttonTelegramTest = view1.findViewById(R.id.buttonTelegramTest);
+ alertDialog71
+ .setTitle(R.string.settelegramtitle)
+ .setIcon(R.mipmap.telegram)
+ .setView(view1)
+ .create();
+ final AlertDialog show = alertDialog71.show();
+
+ buttonTelegramOk.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+
+ if (senderModel == null) {
+ SenderModel newSenderModel = new SenderModel();
+ newSenderModel.setName(editTextTelegramName.getText().toString());
+ newSenderModel.setType(TYPE_TELEGRAM);
+ newSenderModel.setStatus(STATUS_ON);
+ TelegramSettingVo telegramSettingVoNew = new TelegramSettingVo(
+ editTextTelegramApiToken.getText().toString(),
+ editTextTelegramChatId.getText().toString()
+ );
+ newSenderModel.setJsonSetting(JSON.toJSONString(telegramSettingVoNew));
+ SenderUtil.addSender(newSenderModel);
+ initSenders();
+ adapter.add(senderModels);
+ } else {
+ senderModel.setName(editTextTelegramName.getText().toString());
+ senderModel.setType(TYPE_TELEGRAM);
+ senderModel.setStatus(STATUS_ON);
+ TelegramSettingVo telegramSettingVoNew = new TelegramSettingVo(
+ editTextTelegramApiToken.getText().toString(),
+ editTextTelegramChatId.getText().toString()
+ );
+ senderModel.setJsonSetting(JSON.toJSONString(telegramSettingVoNew));
+ SenderUtil.updateSender(senderModel);
+ initSenders();
+ adapter.update(senderModels);
+ }
+
+ show.dismiss();
+
+ }
+ });
+ buttonTelegramDel.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ if (senderModel != null) {
+ SenderUtil.delSender(senderModel.getId());
+ initSenders();
+ adapter.del(senderModels);
+ }
+ show.dismiss();
+ }
+ });
+ buttonTelegramTest.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ String apiToken = editTextTelegramApiToken.getText().toString();
+ String chatId = editTextTelegramChatId.getText().toString();
+ if (!apiToken.isEmpty() && !chatId.isEmpty()) {
+ try {
+ SenderTelegramMsg.sendMsg(handler, apiToken, chatId, "19999999999", "【京东】验证码为387481(切勿将验证码告知他人),请在页面中输入完成验证,如有问题请点击 ihelp.jd.com 联系京东客服");
+ } catch (Exception e) {
+ Toast.makeText(SenderActivity.this, "发送失败:" + e.getMessage(), Toast.LENGTH_LONG).show();
+ e.printStackTrace();
+ }
+ } else {
+ Toast.makeText(SenderActivity.this, "机器人的ApiToken 和 被通知人的ChatId 都不能为空", Toast.LENGTH_LONG).show();
+ }
+ }
+ });
+ }
+
@Override
protected void onDestroy() {
Log.d(TAG, "onDestroy");
diff --git a/app/src/main/java/com/idormy/sms/forwarder/model/SenderModel.java b/app/src/main/java/com/idormy/sms/forwarder/model/SenderModel.java
index 6c9ba179..ce77aecb 100644
--- a/app/src/main/java/com/idormy/sms/forwarder/model/SenderModel.java
+++ b/app/src/main/java/com/idormy/sms/forwarder/model/SenderModel.java
@@ -13,6 +13,7 @@ public class SenderModel {
public static final int TYPE_QYWX_GROUP_ROBOT = 4;
public static final int TYPE_QYWX_APP = 5;
public static final int TYPE_SERVER_CHAN = 6;
+ public static final int TYPE_TELEGRAM = 7;
private Long id;
private String name;
private int status;
@@ -48,6 +49,8 @@ public class SenderModel {
return R.mipmap.qywxapp;
case (TYPE_SERVER_CHAN):
return R.mipmap.serverchan;
+ case (TYPE_TELEGRAM):
+ return R.mipmap.telegram;
default:
return R.mipmap.sms;
}
@@ -109,6 +112,8 @@ public class SenderModel {
return R.mipmap.qywxapp;
case (TYPE_SERVER_CHAN):
return R.mipmap.serverchan;
+ case (TYPE_TELEGRAM):
+ return R.mipmap.telegram;
default:
return R.mipmap.sms;
diff --git a/app/src/main/java/com/idormy/sms/forwarder/model/vo/ServerChanSettingVo.java b/app/src/main/java/com/idormy/sms/forwarder/model/vo/ServerChanSettingVo.java
index c71b9b43..1f3475a0 100644
--- a/app/src/main/java/com/idormy/sms/forwarder/model/vo/ServerChanSettingVo.java
+++ b/app/src/main/java/com/idormy/sms/forwarder/model/vo/ServerChanSettingVo.java
@@ -3,20 +3,20 @@ package com.idormy.sms.forwarder.model.vo;
import java.io.Serializable;
public class ServerChanSettingVo implements Serializable {
- private String send_key;
+ private String sendKey;
public ServerChanSettingVo() {
}
- public ServerChanSettingVo(String send_key) {
- this.send_key = send_key;
+ public ServerChanSettingVo(String sendKey) {
+ this.sendKey = sendKey;
}
public String getSendKey() {
- return send_key;
+ return sendKey;
}
- public void setSendKey(String send_key) {
- this.send_key = send_key;
+ public void setSendKey(String sendKey) {
+ this.sendKey = sendKey;
}
}
diff --git a/app/src/main/java/com/idormy/sms/forwarder/model/vo/TelegramSettingVo.java b/app/src/main/java/com/idormy/sms/forwarder/model/vo/TelegramSettingVo.java
new file mode 100644
index 00000000..e413fb77
--- /dev/null
+++ b/app/src/main/java/com/idormy/sms/forwarder/model/vo/TelegramSettingVo.java
@@ -0,0 +1,32 @@
+package com.idormy.sms.forwarder.model.vo;
+
+import java.io.Serializable;
+
+public class TelegramSettingVo implements Serializable {
+ private String apiToken;
+ private String chatId;
+
+ public TelegramSettingVo() {
+ }
+
+ public TelegramSettingVo(String apiToken, String chatId) {
+ this.apiToken = apiToken;
+ this.chatId = chatId;
+ }
+
+ public String getApiToken() {
+ return apiToken;
+ }
+
+ public void setApiToken(String apiToken) {
+ this.apiToken = apiToken;
+ }
+
+ public String getChatId() {
+ return chatId;
+ }
+
+ public void setChatId(String chatId) {
+ this.chatId = chatId;
+ }
+}
diff --git a/app/src/main/java/com/idormy/sms/forwarder/sender/SendUtil.java b/app/src/main/java/com/idormy/sms/forwarder/sender/SendUtil.java
index 8d2fde3a..7c1625f7 100644
--- a/app/src/main/java/com/idormy/sms/forwarder/sender/SendUtil.java
+++ b/app/src/main/java/com/idormy/sms/forwarder/sender/SendUtil.java
@@ -15,6 +15,7 @@ import com.idormy.sms.forwarder.model.vo.QYWXAppSettingVo;
import com.idormy.sms.forwarder.model.vo.QYWXGroupRobotSettingVo;
import com.idormy.sms.forwarder.model.vo.ServerChanSettingVo;
import com.idormy.sms.forwarder.model.vo.SmsVo;
+import com.idormy.sms.forwarder.model.vo.TelegramSettingVo;
import com.idormy.sms.forwarder.model.vo.WebNotifySettingVo;
import com.idormy.sms.forwarder.utils.LogUtil;
import com.idormy.sms.forwarder.utils.RuleUtil;
@@ -27,6 +28,7 @@ import static com.idormy.sms.forwarder.model.SenderModel.TYPE_EMAIL;
import static com.idormy.sms.forwarder.model.SenderModel.TYPE_QYWX_APP;
import static com.idormy.sms.forwarder.model.SenderModel.TYPE_QYWX_GROUP_ROBOT;
import static com.idormy.sms.forwarder.model.SenderModel.TYPE_SERVER_CHAN;
+import static com.idormy.sms.forwarder.model.SenderModel.TYPE_TELEGRAM;
import static com.idormy.sms.forwarder.model.SenderModel.TYPE_WEB_NOTIFY;
public class SendUtil {
@@ -200,6 +202,20 @@ public class SendUtil {
}
break;
+ case TYPE_TELEGRAM:
+ //try phrase json setting
+ if (senderModel.getJsonSetting() != null) {
+ TelegramSettingVo telegramSettingVo = JSON.parseObject(senderModel.getJsonSetting(), TelegramSettingVo.class);
+ if (telegramSettingVo != null) {
+ try {
+ SenderTelegramMsg.sendMsg(handError, telegramSettingVo.getApiToken(), telegramSettingVo.getChatId(), smsVo.getMobile(), smsVo.getSmsVoForSend());
+ } catch (Exception e) {
+ Log.e(TAG, "senderSendMsg: SenderTelegramMsg error " + e.getMessage());
+ }
+ }
+ }
+ break;
+
default:
break;
}
diff --git a/app/src/main/java/com/idormy/sms/forwarder/sender/SenderTelegramMsg.java b/app/src/main/java/com/idormy/sms/forwarder/sender/SenderTelegramMsg.java
new file mode 100644
index 00000000..c5edfd31
--- /dev/null
+++ b/app/src/main/java/com/idormy/sms/forwarder/sender/SenderTelegramMsg.java
@@ -0,0 +1,92 @@
+package com.idormy.sms.forwarder.sender;
+
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+import android.util.Log;
+
+import com.alibaba.fastjson.JSON;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
+import okhttp3.Call;
+import okhttp3.Callback;
+import okhttp3.MediaType;
+import okhttp3.OkHttpClient;
+import okhttp3.Request;
+import okhttp3.RequestBody;
+import okhttp3.Response;
+
+import static com.idormy.sms.forwarder.SenderActivity.NOTIFY;
+
+public class SenderTelegramMsg {
+
+ static String TAG = "SenderTelegramMsg";
+
+ public static void sendMsg(final Handler handError, String apiToken, String chatId, String from, String text) throws Exception {
+ Log.i(TAG, "sendMsg apiToken:" + apiToken + " chatId:" + chatId + " text:" + text);
+
+ if (apiToken == null || apiToken.isEmpty()) {
+ return;
+ }
+
+ //特殊处理避免标题重复
+ text = text.replaceFirst("^" + from + "(.*)", "").trim();
+
+ String sendUrl = "https://api.telegram.org/bot" + apiToken + "/sendMessage";
+ Log.d(TAG, "sendUrl:" + sendUrl);
+
+ Map bodyMap = new HashMap();
+ bodyMap.put("chat_id", chatId);
+ bodyMap.put("text", text.trim());
+ bodyMap.put("parse_mode", "HTML");
+ String bodyMsg = JSON.toJSONString(bodyMap);
+ Log.d(TAG, "body:" + bodyMsg);
+
+ OkHttpClient client = new OkHttpClient();
+ RequestBody requestBody = RequestBody.create(MediaType.parse("application/json;charset=utf-8"), bodyMsg);
+
+ final Request request = new Request.Builder()
+ .url(sendUrl)
+ .addHeader("Content-Type", "application/json; charset=utf-8")
+ .post(requestBody)
+ .build();
+ Call call = client.newCall(request);
+ call.enqueue(new Callback() {
+ @Override
+ public void onFailure(Call call, final IOException e) {
+ Log.d(TAG, "onFailure:" + e.getMessage());
+
+ if (handError != null) {
+ Message msg = new Message();
+ msg.what = NOTIFY;
+ Bundle bundle = new Bundle();
+ bundle.putString("DATA", "发送失败:" + e.getMessage());
+ msg.setData(bundle);
+ handError.sendMessage(msg);
+ }
+
+ }
+
+ @Override
+ public void onResponse(Call call, Response response) throws IOException {
+ final String responseStr = response.body().string();
+ Log.d(TAG, "Code:" + response.code() + responseStr);
+
+ if (handError != null) {
+ Message msg = new Message();
+ msg.what = NOTIFY;
+ Bundle bundle = new Bundle();
+ bundle.putString("DATA", "发送状态:" + responseStr);
+ msg.setData(bundle);
+ handError.sendMessage(msg);
+ Log.d(TAG, "Response:" + response.code() + responseStr);
+ }
+
+ }
+ });
+ }
+
+}
diff --git a/app/src/main/res/layout/alert_dialog_setview_telegram.xml b/app/src/main/res/layout/alert_dialog_setview_telegram.xml
new file mode 100644
index 00000000..ea1986e9
--- /dev/null
+++ b/app/src/main/res/layout/alert_dialog_setview_telegram.xml
@@ -0,0 +1,107 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-hdpi/serverchan.png b/app/src/main/res/mipmap-hdpi/serverchan.png
index bdb70ff2..97282736 100644
Binary files a/app/src/main/res/mipmap-hdpi/serverchan.png and b/app/src/main/res/mipmap-hdpi/serverchan.png differ
diff --git a/app/src/main/res/mipmap-hdpi/telegram.png b/app/src/main/res/mipmap-hdpi/telegram.png
new file mode 100644
index 00000000..9d365f61
Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/telegram.png differ
diff --git a/app/src/main/res/mipmap-mdpi/serverchan.png b/app/src/main/res/mipmap-mdpi/serverchan.png
index cf674353..dffdb835 100644
Binary files a/app/src/main/res/mipmap-mdpi/serverchan.png and b/app/src/main/res/mipmap-mdpi/serverchan.png differ
diff --git a/app/src/main/res/mipmap-mdpi/telegram.png b/app/src/main/res/mipmap-mdpi/telegram.png
new file mode 100644
index 00000000..91518e27
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/telegram.png differ
diff --git a/app/src/main/res/mipmap-xhdpi/serverchan.png b/app/src/main/res/mipmap-xhdpi/serverchan.png
index efbf465e..38bce909 100644
Binary files a/app/src/main/res/mipmap-xhdpi/serverchan.png and b/app/src/main/res/mipmap-xhdpi/serverchan.png differ
diff --git a/app/src/main/res/mipmap-xhdpi/telegram.png b/app/src/main/res/mipmap-xhdpi/telegram.png
new file mode 100644
index 00000000..7633fc5b
Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/telegram.png differ
diff --git a/app/src/main/res/mipmap-xxhdpi/serverchan.png b/app/src/main/res/mipmap-xxhdpi/serverchan.png
index 14301721..853bf825 100644
Binary files a/app/src/main/res/mipmap-xxhdpi/serverchan.png and b/app/src/main/res/mipmap-xxhdpi/serverchan.png differ
diff --git a/app/src/main/res/mipmap-xxhdpi/telegram.png b/app/src/main/res/mipmap-xxhdpi/telegram.png
new file mode 100644
index 00000000..8ecd549c
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/telegram.png differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/serverchan.png b/app/src/main/res/mipmap-xxxhdpi/serverchan.png
index 8e8a2e5f..086aa9e2 100644
Binary files a/app/src/main/res/mipmap-xxxhdpi/serverchan.png and b/app/src/main/res/mipmap-xxxhdpi/serverchan.png differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/telegram.png b/app/src/main/res/mipmap-xxxhdpi/telegram.png
new file mode 100644
index 00000000..6ef57105
Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/telegram.png differ
diff --git a/app/src/main/res/values/array.xml b/app/src/main/res/values/array.xml
index 765cf215..4b00a8b0 100644
--- a/app/src/main/res/values/array.xml
+++ b/app/src/main/res/values/array.xml
@@ -8,5 +8,6 @@
- 转发到企业微信群机器人
- 转发到企业微信应用消息
- 转发到Server酱·Turbo版
+ - 转发到Telegram机器人
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 5054fb5b..53ef1690 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -13,6 +13,7 @@
设置企业微信应用
设置Bark
设置Server酱·Turbo版
+ 设置Telegram机器人
检查更新
设置
关于
diff --git a/app/version.gradle b/app/version.gradle
index 58d44903..07012f7e 100644
--- a/app/version.gradle
+++ b/app/version.gradle
@@ -1,4 +1,4 @@
ext {
- appVersionCode = 17
- appVersionName = "1.6.1"
+ appVersionCode = 18
+ appVersionName = "1.6.2"
}
\ No newline at end of file
diff --git a/pic/senderserverchan.jpg b/pic/senderserverchan.jpg
new file mode 100644
index 00000000..e7c1cf15
Binary files /dev/null and b/pic/senderserverchan.jpg differ
diff --git a/pic/sendertelegram.jpg b/pic/sendertelegram.jpg
new file mode 100644
index 00000000..63f028e3
Binary files /dev/null and b/pic/sendertelegram.jpg differ
diff --git a/psd/xxxhdpi.psd b/psd/xxxhdpi.psd
index 3a8e7c76..b65ed40c 100644
Binary files a/psd/xxxhdpi.psd and b/psd/xxxhdpi.psd differ