是否有程序化方法在越狱设备上访问iOS上的GLONASS卫星信号和位置数据?也就是说,是否可以在越狱设备上进行私人呼叫,并返回此数据? (就我所尝试过的情况而言,我没有越狱设备,所以我无法尝试任何东西,但我很好奇那里有什么可能。谢谢。)
答案 0 :(得分:2)
即使您的设备没有越狱,您仍然可以查看越狱设备可用的内容......您无法完全测试它。< / p>
在您的开发Mac上,您拥有完整的框架,公共和私有,您可以使用class-dump(或class-dump-z)之类的东西来检查它们。
下载class-dump,然后在Mac上,您可以使用这样的脚本(将所有标题转储到/ Users / Shared / Headers /下的文件夹中):
#!/bin/bash
cd /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/;
for FRAMEWORKS in Frameworks PrivateFrameworks; do
frameworklib=./System/Library/"${FRAMEWORKS}"
for frameworkpath in "${frameworklib}"/*.framework; do
frameworkdir="$(basename "${frameworkpath}")"
frameworkbin="${frameworkdir%.*}"
if [ -f "${frameworkpath}/${frameworkbin}" ]; then
echo "Framework: ${frameworkbin}"
mkdir -p /Users/Shared/Headers/5.0/${frameworkbin}
class-dump -H -o "/Users/Shared/Headers/5.0/${frameworkbin}" "${frameworkpath}/${frameworkbin}"
fi
done
done
然后,您将留下标题,不仅显示公开记录的API,还显示私有API。两个完全私有的框架,以及公共框架的私有部分。
然后,我只是转到这个脚本转储.h文件的根文件夹,然后开始grepping:
> find . -name '*.h' | xargs grep -i GLONASS
可悲的是,该术语(GLONASS)没有出现在5.0标题中,但是听起来你理解这个问题域,你可能会找到一些更好的术语来搜索。
不幸的是,标题只包含方法原型和数据定义。没有文件。因此,例如,如果有int
个参数,您可能需要猜测它们的含义。
但是,这是发现隐藏设备功能的反复试验性质:)
注意:在使用上述过程发现之后,您当然可以在自己的非越狱手机上测试部分私有API。但是,如果设备没有越狱,应用程序退出沙箱,或者拥有root权限或其他权利,其他API将无法运行。
答案 1 :(得分:1)
嗯,对于初学者,你正在寻找正确的方向:如果你没有越狱,你将可以访问Core Location框架&amp; API可以为您提供位置,精度等,但GPS / GLONASS接收器没有信息(甚至没有使用它们来获取位置)。
但是在你进入框架内部之前:你是否需要访问GPS / GLONASS接收器中的内置或外接蓝牙?看看http://itunes.apple.com/us/app/bluetooth-gps-status-tool/id422661436?mt=8
答案 2 :(得分:0)
iPhone 4S支持AGPS和GLONASS。我相信Core Location管理较低级别的通信,而我的应用程序并不关心lat / long数据是来自美国GPS卫星还是俄罗斯GLONASS卫星。 Core Location将为您提供正确的纬度/经度信息。
更新:重读你的问题后,或许我误解了这个问题。我认为您无法访问GLONASS卫星信号和位置。但祝你好运!