ip定位
发表于|更新于|经验
|浏览量:
1、自有搭建
IP 定位框架 GeoIP2 for Java:
https://blog.csdn.net/GodSuzzZ/article/details/108095385
官网:
https://www.maxmind.com/en/geoip2-services-and-databases
py:
https://pypi.org/project/geoip2/#description
2、免费转接
寻找免费获取ip信息站点经过我们自己服务转一下
https://ipapi.co/218.104.82.74/json
3、付费接口
https://timezoneapi.io/api/ip/?token=aeLjNqtdVzUgQeiYumTC
文章作者: Fleming Chen
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Fleming's Blog!
相关推荐
2024-02-13
关于Gradle版本配置
关于Gradle版本配置✅ 项目里“真正被 Gradle 选中参与构建”的所有依赖👉 都会被下载到 .gradle/caches 下 ✅ 这些依赖的“具体版本”👉 最终来自:第三方库自身的版本声明 + Gradle 的依赖解析结果 老项目 AGP -> 最高7.4.2, gradle-7.5-bin JVM -> 11及以下 新项目 AGP -> 8.0.0及以上, 最低gradle-8.0-bin推荐:2024 AGP:8.3.2 gradle:8.4-bin以上 kotlin:1.9.20 JVM -> 17及以上 需要配置namespace 关于Kotlin AGP 推荐 Kotlin 7.4.x 1.7.20 8.0.x 1.8.10 8.1.x 1.8.20 8.2.x 1.9.0 8.3.x 1.9.20
2023-03-24
分区存储获取文件
分区存储获取文件从 Android Jetpack 的 Activity Result API 开始,推荐使用 ActivityResultLauncher 来处理活动结果(如启动文件选择器或拍照等操作)。相比于传统的 startActivityForResult() 方法,ActivityResultLauncher 提供了更简洁、现代化的 API。 以下是使用 ActivityResultLauncher 和 Storage Access Framework (SAF) 获取文件的完整示例代码: 1. 使用 ActivityResultLauncher 启动 SAF 文件选择器123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android...
2018-12-05
sqlite3查看数据库
sqlite3查看数据库.db 文件通常是 SQLite 数据库文件。Room 是 Android 官方推荐的本地数据库库,它底层使用的就是 SQLite。因此,Room 生成的 .db 文件本质上就是一个标准的 SQLite 数据库文件。 你可以通过以下方式在电脑上查看 .db 文件的内容: ✅ 方法一:使用 sqlite3 命令行工具(推荐)步骤如下: 安装 sqlite3 工具(如果尚未安装): macOS(通常已预装):1sqlite3 --version Windows: 下载地址:https://www.sqlite.org/download.html 下载 sqlite-tools-win32-*.zip,解压后将 sqlite3.exe 加入系统 PATH。 Linux(Ubuntu/Debian):1sudo apt install sqlite3 打开终端(命令行)并进入 .db 文件所在目录,例如: 1cd /path/to/your/database/ 使用 sqlite3 打开数据库: 1sqlite3 your_database...
2020-02-08
关于EventBus
关于EventBus12EventBus.getDefault().register(this)EventBus.getDefault().unregister(this) @Subscribe 订阅者方法ThreadMode 决定了订阅者的行为处理在主线程还是子线程,也是就耗时操作尽量开辟子线程,避免ANR等等,一般默认就行 发布者 在主线程发送事件 在子线程发送事件 main 主线程 主线程 posting 主线程 子线程 async 新开一个子线程 新开一个子线程 background 新开一个子线程 子线程 12345678910111213141516171819202122232425262728@Subscribe(threadMode = ThreadMode.MAIN) public void MessageEventBus(EventBusMessage eventBusMessage){ //在TextView显示接收的消息,从这个类里拿属性. tv_title.setText(eventBusMessag...
2017-02-08
strings中的文本替换
strings中的文本替换 实际开发的过程中我们有时候会遇到,一个TextView里面会遇到会有一个一大串固定的文字,而里面的数字或者个别字需要根据后台的接口而展示的。这个时候我们最简单的方法就是在string.xml文件里 使用 %s、%1$s、%d、%1$d,而在页面展示的时候我们只需要用实际展示的文字或者数据替换掉这些占位符就可以了。 %1$s表示把第一个位置的占位符替换成string类型 %1$d表示把第一个位置的占位符替换成int类型 数字表示替换字符串中第几个被替换的位置,若一个字符串要替换两个int类型,在替换位置分别写%1$d和%2$d. %s 、%d为缩写方式,只替换一个位置,可以这么写。
2023-02-08
蓝牙项目启动权限和蓝牙定位开关的问题
蓝牙项目启动权限和蓝牙定位开关的问题蓝牙项目启动,想要顺利地使用蓝牙扫描和连接,分两种情况 Android 6以上到Android 12以下需要动态申请定位权限ACCESS_COARSE_LOCATION和ACCESS_FINE_LOCATION,两个都要申请 Android 12以上需要动态申请BLUETOOTH_SCAN和BLUETOOTH_CONNECT 完成上述权限申请后,还需要在6-12判断蓝牙和定位是否打开,12以上不需要打开定位也可以 申请动态权限,拒绝就提示进设置,同意就走下一步 判断蓝牙和定位开关是否打开
公告
欢迎来到我的博客,有任何疑问可以随时联系我交流讨论!






