当前位置: 首页 > 工具软件 > telegram-list > 使用案例 >

Telegram Android开源源码运行

竺辉
2023-12-01

TG-Android开源源码运行

源码地址

https://github.com/DrKLO/Telegram

环境介绍

  1. Android Studio版本至少3.4,或者直接去官网下载最新的

  1. 手机最低要求是Android 8

项目结构

TMessagesProj是电报通讯的核心代码,它是一个依赖库,包含了UI,默认启动页是LanuchActivity.java,登录页面是LoginActivity.java

TMessagesProj_App 是要run的项目,一般手机可以直接run这个项目

TMessagesProj_AppHockeyApp及TMessagesProj_AppHuawei应该是针对特定场景的启动入口

编译

  1. 第一步替换签名

这个很好理解,搞Android开发应该都清楚,需要替换打包签名,用你自己的签名替换TMessagesProj/config/签名文件

签名文件的命令及签名密码及别名都需要在gradle.properties里面去改成你自己的,在debug模式下也是用的release签名

需要改的gradle.properties参数

RELEASE_KEY_PASSWORD=你自己的签名密码

RELEASE_KEY_ALIAS=你自己签名的alias

RELEASE_STORE_PASSWORD=你自己的签名密码

如果你的签名文件不是release.keystore,你需要去build.gradle把release.keystore替换成你自己的签名文件名字

  1. 第二步改应用包名

这个默认包名是电报的包名,你需要改成你自己的包名,也是去gradle.properties去改

找到 APP_PACKAGE=org.telegram.messenger ,改成自己的包名

  1. 第三步google服务配置

这个项目用到了google的服务,所以需要去google服务注册你的应用https://console.firebase.google.com/ 需要注册两个应用,一个应用用到的包名就是你配置的APP_PACKAGE包名,另外一个应用是你的包名后面要加".beta",比如我的包名是come.telegram.demo,那么我需要注册一个叫come.telegram.demo的应用,一个叫come.telegram.demo.beta的应用,这里注册两个应用的原因是debug模式下脚本会给你的包名结尾加上.beta,去网站注册完应用后会有一个json文件下载地址把它下载下来 google-services.json,下载下来后替换项目中google-services.json文件

  1. 第四步需要去电报Api网站对你的应用进行注册

注册完你会得到appid及apphash,然后去BuildVars.java文件把appid及apphash替换成你自己的,去这个网站进行应用注册 https://my.telegram.org/auth 注册时需要手机号和验证码,验证码不是通过短信发的,验证码是通过电报发的消息,所以注意你要先用官方电报软件用你账户登录,登录后你在电报上收验证码

  1. 网络问题

到这里的时候你的项目配置基本没啥问题了,可以直接run,但是受国内环境限制你跑起来并不能连上电报的socket,即使你手机用了v p n能访问g o o g l e可能也并不一定能连上电报socket,你可以过滤下日志tel,看看链接状态有没有超时,软件跑起来会进入登录页面通过手机号进行登录点击登录要是连不上会一直是转圈,这时候可能需要找一个代 - 理,网上有很多代理电报的资源,有两种协议一种是mtproto协议一种是socket5协议,可以去这个网站找找是否有能用的代-理ip端口 https://github.com/hookzof/socks5_list/tree/master/tg 我用的是socket5协议成功连上了服务器,这个json文件里面有很多IP端口,并不一定都能用,只能多试试这些IP

怎样去设置代理?

Android源码里面虽然有代理页面但是那是登录成功后才能通过页面设置,登录页面没有代理设置入口,只能你自己改源码,你可以这样在Activity(必须要在Activity里面调用)里面调用下这个代码

AndroidUtilities.showProxyAlert(Activity activity, final String address, final String port, final String user, final String password, final String secret)

showProxyAlert会弹出一个dialog,弹出后你点击确认即可然后去尝试登录

address和port参数是必填的,其他参数可不填,如果代理是mtproto协议好像需要填secret,socket5只需要填IP和端口即可,如果这些proxyIP能用应该就可以登录进去了

 类似资料: