iOS 7(非越狱)Wi-Fi RSSI 值

2023-11-30

是否可以在未越狱的 iOS 7 设备上获取 Wi-Fi RSSI 值?我读到了 MobileWiFi.framework 和Apple80211功能,如果我理解正确的话,它们在没有越狱的情况下无法工作。

我不想在 App Store 上发布我的应用程序,因此允许使用私有 API。


我找不到原始帖子的来源,但它在运行 iOS 7.1 的被监禁设备上对我有用(在 iOS 8 上不起作用):

#include <dlfcn.h>

-(NSDictionary *)currentWiFiInfo
{
   void *libHandle;
   void *airportHandle;

   int (*apple80211Open)(void *);
   int (*apple80211Bind)(void *, NSString *);
   int (*apple80211Close)(void *);
   int (*apple80211GetInfoCopy)(void *, CFDictionaryRef *);

   NSMutableDictionary *infoDict = [NSMutableDictionary new];
   NSDictionary * tempDictionary;
   libHandle = dlopen("/System/Library/SystemConfiguration/IPConfiguration.bundle/IPConfiguration", RTLD_LAZY);

   char *error;

   if (libHandle == NULL && (error = dlerror()) != NULL)  {
      NSLog(@"%s", error);
   }

   apple80211Open = dlsym(libHandle, "Apple80211Open");
   apple80211Bind = dlsym(libHandle, "Apple80211BindToInterface");
   apple80211Close = dlsym(libHandle, "Apple80211Close");
   apple80211GetInfoCopy = dlsym(libHandle, "Apple80211GetInfoCopy");

   apple80211Open(&airportHandle);
   apple80211Bind(airportHandle, @"en0");

   CFDictionaryRef info = NULL;

   apple80211GetInfoCopy(airportHandle, &info);

   tempDictionary = (__bridge NSDictionary *)info;

   apple80211Close(airportHandle);

   [infoDict setObject:(tempDictionary[@"RSSI"])[@"RSSI_CTL_AGR"] ? (tempDictionary[@"RSSI"])[@"RSSI_CTL_AGR"] : @"0" forKey:@"RSSI"];
   [infoDict setObject:tempDictionary[@"BSSID"] ? tempDictionary[@"BSSID"] : @"null" forKey:@"BSSID"];
   [infoDict setObject:tempDictionary[@"SSID_STR"] ? tempDictionary[@"SSID_STR"] : @"null" forKey:@"SSID"];
   [infoDict setObject:tempDictionary[@"RATE"] ? tempDictionary[@"RATE"] : @"0" forKey:@"SPEED"];

   return infoDict;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS 7(非越狱)Wi-Fi RSSI 值 的相关文章

  • 在 UITableView 中设置滚动位置

    我有一个应用程序 其工作方式与 iPhone 的 联系人 应用程序的工作方式有些相似 当我们添加新的联系人时 用户将被定向到包含联系人信息的仅查看屏幕 如果我们从导航栏中选择 所有联系人 用户将导航到查看最近添加的联系人的所有联系人列表 我
  • 如何改进 iOS 中的 TWTweetComposeViewController 代码?

    我已经实现了以下代码来进行 Twitter 共享 在我的代码中 我尝试测试 iOS 5 如果这不起作用 我会回到使用 ShareKit 的 Twitter 代码进行共享的旧方式 我向同事展示了代码 他建议我的代码可能有缺陷 我需要做两件事
  • 移动 Safari 中的文件上传和 EXIF

    正如这些问题中所指出的 在某些情况下 iOS 上上传的照片的地理位置和其他 EXIF 元数据会被删除 在 safari 中 https apple stackexchange com questions 326789 gps exif fr
  • prepareForSegue 和代表

    我有一个有两个 segue 的应用程序 在其中一个 Segue 中 当前视图控制器成为委托 而另一个则不是 void prepareForSegue UIStoryboardSegue segue sender id sender if s
  • CNContact 添加新的联系人问题

    我在通过以下方式添加联系人时遇到问题联系框架 我使用的是装有 iOS 12 1 2 的 iPhone 5s 设备 我添加联系人的代码如下 let saveRequest CNSaveRequest saveRequest add self
  • 检测您何时进入/退出 Xamarin.iOS 中的主线程

    Xamarin MonoTouch 有没有办法检测主线程中是否正在调用代码 我正在寻找类似于Java的东西EventQueue isEventDispatchThread 我发现 Swing 编程很方便assert时不时 或有时assert
  • ios 8 核心数据崩溃

    保存时 CoreData 发生崩溃 2014 09 16 09 51 58 273 My app 2678 105246 Terminating app due to uncaught exception NSInvalidArgument
  • 如何保存 1 个 xcode 项目中的所有构建设置并在其他 xcode 项目上使用它们?

    我使用 xcode 4 5 和 cordova phonegap 来构建我的应用程序 我投入了大量时间来获取适合我的 Xcode 项目的构建设置 并且我想在我正在构建的多个应用程序上重用这些设置 我正在寻找是否有一种快速的方法来导出这些设置
  • cordova-plugin-whitelist 适用于 Android,但不适用于 iOS (Phonegap Build)

    我正在开发一个用 Cordova 封装并使用 Phonegap Build 构建的 JavaScript 应用程序 我们包括cordova plugin whitelist来自我们构建中的 npm 并添加了
  • 为什么我们在 @synchronized 块中传递 self ?

    我猜 synchronized 块不依赖于对象 而是依赖于线程 对吗 既然如此 我们为什么要传递 self 呢 synchronized是语言提供的用于创建同步作用域的构造 因为使用简单的全局共享互斥锁效率非常低 因此序列化每个单独的互斥锁
  • 自动调整大小完成后如何获取帧大小

    我想知道 如何以及何时 viewDidLoad viewWillAppear viewDidAppear 可以获得自动调整大小以适合其父视图的 UIViews 框架大小 从你的问题中不清楚你为什么想要它 但我想这是为了布局你的子视图 幸运的
  • iOS:弃用 AudioSessionInitialize 和 AudioSessionSetProperty

    我对 Objective C 很陌生 正在尝试更新一些大约 3 年前的代码以与 iOS 7 一起使用 有两两个实例AudioSessionSetProperty and AudioSessionInitialize出现在代码中 1 void
  • iOS Swift 检测键盘事件

    我能以某种方式检测来自 iOS 键盘的事件吗 我想检测此类事件UIViewController哪个没有UITextField或任何此类物体 我只有四个圆圈UIView我想在按下键盘上的按钮时将它们涂成不同的颜色 您没有任何对象可以从键盘获取
  • 在界面生成器/故事板中设置 UIButton 图像

    我有一个视图控制器 我在故事板中添加了一个圆形矩形按钮 该应用程序运行良好 我还使用故事板将按钮连接到 segue 我正在尝试为此按钮设置一个自定义图像以用于其开和关状态 我如何访问此按钮并设置其属性 在本例中为开和关图像 这是一个屏幕截图
  • 使用 Push Transition 效果更改 RootViewcontroller

    在我的iOS应用程序中 我需要更改应用程序之间窗口的rootviewController 因此 当我动态更改我的rootviewcontroller时 它会在更改之前轻拂视图 但我想要的是在更改rootviewcontroller时提供平滑
  • iOS 4.2.1 丢失文件?

    这是我第一次使用最新的 xcode 3 2 5 和新的 iOS 4 2 1 当我在设备上运行应用程序时 我收到以下运行时错误 无法读取 Developer Platforms iPhoneOS platform DeviceSupport
  • iOS 解决方案仅当图像尚未使用 SDWebImage 缓存在内存中时才加载带有动画的图像

    我已经为这个问题苦苦挣扎了几天 以前我使用 AFNetworking 类别来加载和缓存图像 但它的回调中没有提供缓存类型 所以我过去常常在每个控制器中跟踪哪些图像已经加载 我浏览了 SDWebImage 它提供了我正在寻找的东西 SDIma
  • iOS 开发: [[self navigationController] viewControllers]; 有哪些原因?会返回零吗?

    以下语句返回零 NSArray viewControllersInNavStack self navigationController viewControllers 这个语句是在导航堆栈中大约四层深度的视图控制器中调用的 所以我不明白它如
  • iOS:从非图像数据生成图像(Godus,如风景)

    所以看到图像后Godus http www kickstarter com projects 22cans project godus我想知道如何生成简单的 非交互式的 2D 图像 with 不同高度或层数的颜色不同就像下面的图片一样 我只
  • iOS 对 Google 云消息传递的支持

    我在谷歌的开发者控制台中看到 GCM 允许为 iOS 生成 API 密钥 我在网上搜索了有关如何在 iOS 应用程序中通过 GCM 实现推送通知的任何类型的文档 但没有找到答案 真的有可能在 iOS 应用程序中使用 GCM 实现推送通知 j

随机推荐

  • 修改内存区域 - 返回 0xCC VC++

    我正在修改 dll 中编译的可执行代码的某些部分 但是我正在修改的整个段中固定地址处的单个字节无法更改 甚至无法读取 代码很简单 SEGMENT DATA segInfo getSegmentInfo mHandle segmentName
  • 如何从 Angular mat-select 获取以前的和新的值?

    你好 我使用的是 Angular 6 和 agular 材料 并且我有一个字符串数组 我将其显示在垫选择表单字段中 如果用户选择一个元素 然后选择另一个元素 我需要跟踪前一个值是什么以及新值是什么 到目前为止 我已经能够使用 event v
  • 使用 XSLT 转换在 XML 中创建 xmlns 属性

    我尝试使用 JDK Transformer Oracle XML v2 Parser 或 JAXP 在 XSLT 转换期间将 xmlns 属性添加到结果 XML 并使用参数传递的值 但它始终默认为http www w3 org 2000 x
  • 如何使文本与图标字体垂直对齐?

    我有一个非常基本的 HTML 它混合了纯文本和图标字体 问题在于图标的渲染高度与文本的高度不完全相同 div class ui menu a href t class item i class large home basic icon i
  • 创建简单的 URL(.htaccess - mod_rewrite)

    我的导航有这个结构index php v page 我希望将其转换为 www domain com page 使用 mod rewrite 对此有什么想法吗 我读了一些图和例子 但无法让它正常工作 这里有一些例子 RewriteEngine
  • 如何在 Ionic 中制作开/关按钮

    我需要在 Ionic 中放置一个按钮 该按钮在按下后保持激活状态 并且仅在再次按下后才停用 有一个类似的问题 但它仅适用于图标按钮 如何添加具有离子开 离子关功能的导航栏按钮 EDIT 我无法使用切换按钮 它需要是一个常规外观的按钮 在本例
  • 如何在 Matplotlib (Numpy) 中生成 MATLAB 图(插值)?

    我正在尝试遵循网格网格 插值的 MATLAB 示例 示例代码已找到HERE 在该网站上 我正在查看以下示例 示例 在表面上显示不均匀数据 Now I would like to produce a similar plot in Pytho
  • 带闭包的 python 计数器

    我正在尝试用 python 构建一个具有闭包属性的计数器 以下代码有效 def generate counter CNT 0 def add one CNT 0 CNT 0 1 return CNT 0 return add one 但是
  • PHP-从字符串中获取特定单词

    如果我有一个像这样的字符串 myString input name something 我怎样才能得到name得到回应 每个字符串看起来都是这样 除了名称和其他内容可能不同 所以你唯一知道的是 输入后开始 它用正斜杠分隔 gt strArr
  • std::unique_ptr 作为目标 c 中的 @property

    如何在 Objective C 类的接口部分定义 std unique ptr 的 property property std unique ptr
  • 将对象推入数组无法按预期工作

    我的目标是创建一个像这样的数组 str a number 1 str a number 2 str b number 1 str b number 2 所以我写了这个javascript abc a b num 1 2 arr a for
  • 如何使用 TestNG 框架和 Jenkins 运行 Selenium 测试

    我想使用 Jenkins 运行在 TestNG 框架中编写的 Selenium 测试 jenkins job Freestyle项目 中配置的命令 java cp J taf testng J taf workspace TestNGExa
  • 如何使用 htaccess 将下划线替换为破折号?

    好的 这是我的网址 http example com home process login 我想用破折号替换下划线 So http example com home process login会转到上面的网址 但它仍然会说process l
  • Ruby 中的常量和变量有什​​么区别?

    因此 我正在 CodeAcademy 上学习 Ruby 课程 但我一直在区分变量和类之间的差异 有人可以向我解释一下其中的区别吗 我给你饼干 无论我在网上哪里查找 都找不到任何有关此的信息 Ruby 中常量的想法是 它们只能分配一次值 而您
  • SpriteKit - 在随机位置创建而不重叠

    我想在随机位置创建一些精灵而不重叠 这是我的代码 var sprites SKSpriteNode for index in 0 spriteArray let sprite SKSpriteNode imageNamed named sp
  • 如何确定形状的旋转?

    我有以下形状 它可能会旋转未知的角度 我想确定其相对于水平轴的旋转 因此上面的形状的旋转等于 0 到目前为止 我提出的最好的想法是确定形状的轮廓 找到最小面积矩形 然后将其旋转作为形状本身的旋转 Mat mask imread path t
  • 在 d3.js 中反转色阶

    是否可以在 d3 中创建具有颜色域和数字范围的比例 我尝试了以下方法 var colorScale d3 scale linear range red white domain 3 9 5 console log cs colorScale
  • 即使关闭应用程序,列表视图突出显示的所选项目仍然保留

    我在如何保存和读取列表视图中突出显示的项目时遇到了麻烦 我使用下面的共享首选项 但我不知道下一步 请帮助我如何做到这一点 非常感谢任何帮助 Image ArrayList
  • 使用python创建多列的虚拟变量

    我正在处理一个包含两列 ID 号的数据框 为了进一步研究 我想为这些 ID 号 带有两个 ID 号 制作一种虚拟变量 但是 我的代码不会合并两个数据帧中的列 如何合并两个数据帧中的列并创建虚拟变量 数据框 import pandas as
  • iOS 7(非越狱)Wi-Fi RSSI 值

    是否可以在未越狱的 iOS 7 设备上获取 Wi Fi RSSI 值 我读到了 MobileWiFi framework 和Apple80211功能 如果我理解正确的话 它们在没有越狱的情况下无法工作 我不想在 App Store 上发布我