从此
📄文章 #️⃣专题 🌐酷站 👨‍💻技术 📺 📱

其他、孤岛页、临时(Temp)、过时、废弃等


    implementation("org.jmdns:jmdns:3.6.0")
    implementation("org.slf4j:slf4j-jdk-platform-logging:2.0.16")
    implementation("org.slf4j:slf4j-jdk14:2.0.16")

                String type = "_workstation._tcp.local.";
                android.net.wifi.WifiManager wifi =
                        (android.net.wifi.WifiManager)
                                getSystemService(android.content.Context.WIFI_SERVICE);
                var lock = wifi.createMulticastLock("HeeereDnssdLock");
                lock.setReferenceCounted(true);
                lock.acquire();

                new Thread(() -> {
                    try {
                        JmDNS jmdns = JmDNS.create(InetAddress.getLocalHost());

                        jmdns.addServiceListener(type, new ServiceListener() {
                            @Override
                            public void serviceAdded(ServiceEvent event) {
                                System.out.println("Service added: " + event.getInfo());
                            }

                            @Override
                            public void serviceRemoved(ServiceEvent event) {
                                System.out.println("Service removed: " + event.getInfo());
                            }

                            @Override
                            public void serviceResolved(ServiceEvent event) {
                                System.out.println("Service resolved: " + event.getInfo());
                            }
                        });
                    } catch (IOException e) {
                        throw new RuntimeException(e);
                    }
                }).start();

技术

Android:
  Android 8+ (26)限制了隐式广播和前台Service必须startForegroundService+通知提醒
    应用不可见数分钟后会被系统认定为后台服务,故强制停止非前台Service.stopSelf()
    通过startForegroundService启动的前台服务则能正常启动Activity
  Godot模板版本30.0.3;
  Android 7+/24+系统支持v2签名;支持“多窗口”和“快速设置”和“Vulkan”
  Android 8.0(支持“画中画 (PIP) ”和“蓝牙低功耗 (BLE) 5.0”及“WLAN 感知/Wi-Fi Aware”) /minSdk 26 及 targetSdk 30
  Android 8.1+ 支持跨进程超过1M大小的SharedMemory
  Android 9+类DisplayCutout支持屏幕缺口布局,可通过模拟器模拟。
  Android 9+ StrongBox Keymaster:
https://developer.android.com/training/articles/keystore#HardwareSecurityModule

  Android 9+判断定位 var lm = (LocationManager) context.getSystemService(
      Context.LOCATION_SERVICE); lm.isLocationEnabled();
    废弃了Settings.Secure.LOCATION_MODE

  AGP 8.0+报错"Missing classes..."解决:
    -dontwarn java.**
    -dontwarn javax.**

    public static boolean canDrawOverlaysForScreenCaptureIntent(Context c) {
        var appOpsMgr = (AppOpsManager) c.getSystemService(Context.APP_OPS_SERVICE);
        if (appOpsMgr == null) {
            return false;
        }
        var op = AppOpsManager.permissionToOp(Manifest.permission.SYSTEM_ALERT_WINDOW);
        if (op == null) {
            return false;
        }
        //  29+ 过时的 checkOpNoThrow 换为 unsafeCheckOpNoThrow
        int mode = appOpsMgr.checkOpNoThrow(op, android.os.Process.myUid(), c.getPackageName());
        System.out.println("mode - " + mode); //  MODE_DEFAULT=3(未处理时)、MODE_ERRORED=2(主动不允许时)
        return mode == AppOpsManager.MODE_DEFAULT || Settings.canDrawOverlays(c);
    }

其他

  xcode自动签发原理机制 - https://whlcj.github.io/posts/2023/xcode_sign/
  详解xcode自动签发 - https://www.cnblogs.com/xionda/p/15391737.html
https://www.cnblogs.com/iOS-mt/p/5454287.html

  无感刷新token - https://www.bilibili.com/video/BV12A23YYEyr/
    https://www.51cto.com/article/786398.html https://happyjayxin.medium.com/前端如何無感刷新-token-35591a075411