// 此代码由autojs开发交流群整理提供,如有侵权,请联系我删除!
"ui";
importClass(android.view.View);
//设置状态栏为透明
ui.statusBarColor(colors.TRANSPARENT);
startUI();
function startUI() {
ui.layout(
<frame>
<img id="advertising" scaleType="fitXY" src="file://./res/background.jpg" />
<vertical id="skip" w="90" h="auto" bg="#00000000" margin="0 {
{getNavigationBarHeight()}}px 15 0" layout_gravity="right" >
<card w="*" h="*" cardCornerRadius="3dp" cardElevation="0dp" cardBackgroundColor="#55000000" >
<horizontal gravity="center" >
<text id="countdown" textSize="13" layout_gravity="center" textColor="#ffffff" />
<View bg="#778899" w="1" h="20" margin="5" layout_gravity="center_vertical"/>
<img w="20" h="20" padding="0" src="@drawable/ic_clear_black_48dp" tint="#ffffff" layout_gravity="center"/>
</horizontal>
</card>
</vertical>
<vertical w="*" h="{
{Math.floor(getNavigationBarHeight() * 3.5)}}px" bg="#66987654" layout_gravity="bottom">
<horizontal h="*" gravity="center" >
<img src="file://./res/icon.png" w="60" h="60" scaleType="fitXY" radius="10"/>
<vertical gravity="center" margin="15 0">
<text text="{
{getAppName()}}" w="auto" h="auto" textSize="24" textColor="#ffffff" textStyle="bold" />
<text text="version: {
{app.versionName}}" w="auto" h="auto" textSize="16" textColor="#ffffff"/>
</vertical>
</horizontal>
</vertical>
</frame>
)
}
//透明状态栏{沉浸模式}
activity.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
//线程启动倒计时
threads.start(function() {
if (CheckFd()) {
toastLog("请关闭vpn/代理,重新打开");
exit();
} else {
getNetwork();
}
var time = 3;
if (getNetwork()) {
while (time >= 0) {
ui.post(() => {
ui.countdown.setText("等待" + time + "秒");
time--;
})
if (time <= 0) {
SkipStartPage();
}
sleep(1000)
}
}
})
//跳转广告页或第三方应用
ui.advertising.on("click", () => {
app.openUrl("zwk365.com")
threads.shutDownAll()
})
//当用户回到本界面时,resume事件会被触发,避免卡在启动页
ui.emitter.on("resume", function() {
SkipStartPage();
});
//跳过等待页面
ui.skip.on("click", () => {
threads.shutDownAll()
SkipStartPage();
})
//跳过启动页/在这里修改下一步要运行的脚本路径
function SkipStartPage() {
engines.execScriptFile("./一键热更新登录界面.js");
ui.finish()
}
//获取状态栏高度
function getNavigationBarHeight() {
var navigationBarHeight = 0;
var rid = context.getResources().getIdentifier("config_showNavigationBar", "bool", "android");
if (rid != 0) {
var resourceId = context.getResources().getIdentifier("navigation_bar_height", "dimen", "android");
navigationBarHeight = context.getResources().getDimensionPixelSize(resourceId);
}
return navigationBarHeight;
}
//获取当前App应用名字
function getAppName() {
var packageManager = context.getPackageManager();
var applicationInfo = packageManager.getApplicationInfo(context.getPackageName(), 0);
return packageManager.getApplicationLabel(applicationInfo);
}
//判断当前网络是否可用
function getNetwork() {
importClass(android.net.ConnectivityManager);
var cm = context.getSystemService(context.CONNECTIVITY_SERVICE);
var net = cm.getActiveNetworkInfo();
if (net == null || !net.isAvailable()) {
toastLog("当前网络不可用,请检查网络链接状态");
exit();
} else {
return true;
}
}
//检测抓包fd
function CheckFd() {
try {
var niList = java.net.NetworkInterface.getNetworkInterfaces();
if (niList) {
var VPN;
var arry = java.util.Collections.list(niList).toArray()
for (ary = 0; ary < arry.length; ary++) {
if (!arry[ary].isUp() || arry[ary].getInterfaceAddresses().size() == 0) {
continue;
}
if (arry[ary].getName().search("tun0") !== -1 || arry[ary].getName().search("ppp0") !== -1) {
VPN = true;
return true
} else {
VPN = false
}
}
return VPN
}
} catch (error) {}
}
//让返回键失效
var Liuyun_back = false;
ui.emitter.on("back_pressed", e => {
if (!Liuyun_back) {
Liuyun_back = false;
e.consumed = true;
} else {
e.consumed = false;
};
});