3

ジェイルブレイクされたデバイス上のiOSでGLONASS衛星信号と位置データにアクセスするプログラム的な方法はありますか?つまり、このデータを返すジェイルブレイクされたデバイスで行うことができるプライベートコールはありますか?(私が試した限りでは、ジェイルブレイクされたデバイスを持っていないので、まだ何も試すことができませんが、そこで何ができるのか知りたいです。ありがとう。)

4

3 に答える 3

2

デバイスがジェイルブレイクされていない場合でも、ジェイルブレイクされたデバイスで何が利用できるかを確認できます...まだ完全にテストすることはできません.

開発用 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 ファイルをダンプするルート フォルダーに移動し、grep を開始します。

> find . -name '*.h' | xargs grep -i GLONASS

悲しいことに、その用語 (GLONASS) は 5.0 のヘッダーには表示されませんが、この問題のドメインを理解しているように思われるので、検索するのに適した用語を見つけることができるでしょう。

残念ながら、ヘッダーにはメソッド プロトタイプとデータ定義が含まれているだけです。ドキュメントはありません。そのintため、たとえばパラメーターがある場合、その意味を推測する必要がある場合があります。

しかし、これは隠されたデバイス機能を発見するための試行錯誤の性質です:)

注:上記のプロセスでそれらを発見した後、ジェイルブレイクされていない自分の電話でいくつかのプライベート API をテストすることができます。ただし、他の API は、デバイスがジェイルブレイクされていないか、アプリがサンドボックスから出ていないか、root 権限やその他の資格がないと機能しません。

于 2012-07-18T01:03:20.597 に答える
1

さて、初心者にとっては正しい方向を向いています:脱獄しない場合は、位置情報、精度などを提供できるCore LocationフレームワークとAPIにアクセスできますが、GPS / GLONASS受信機からの情報はありません(それらのうちの場所を取得するために使用されました)。

しかし、フレームワークの内部を掘り下げる前に、内蔵のGPS / GLONASS受信機にアクセスする必要がありますか、それとも外部のBluetooth受信機を使用できますか?ご覧くださいhttp://itunes.apple.com/us/app/bluetooth-gps-status-tool/id422661436?mt=8

于 2012-07-20T21:57:17.553 に答える
0

iPhone 4S は AGPS と GLONASS をサポートしています。Core Location が下位レベルの通信を管理し、緯度/経度データが米国の GPS 衛星から来ているか、ロシアの GLONASS 衛星から来ているかをアプリが気にしないと信じています。Core Location は、関係なく正しい緯度/経度情報を提供します。

更新:あなたの質問を読み直した後、おそらく私はそもそも質問を誤解していました. GLONASS 衛星の信号と位置にアクセスできるとは思いません。しかし、それで頑張ってください!

于 2012-07-24T07:38:43.380 に答える