0

iOS アプリケーションを開き、SpringBoard にアタッチするCydiaコマンドライン ユーティリティが呼び出されます。open

closeアプリケーションに正しい信号を送信する対応するコマンドはありますか? 終了する前に必要なクリーンアップを行うために、正しいシグナルを送信する必要があります。killアプリケーションが信号をキャッチできないため、コマンドを使用できません。

この特定のコマンド ライン ツールを高低で検索してきましたが、まだ見つかりません。

ありがとうございました。

4

2 に答える 2

0

使ってみましたか

killall MobileCydia

動作するはずです

于 2013-03-25T13:30:18.437 に答える
0

そのようなコマンドは知りませんが、ホーム ボタンの押下をシミュレートするコマンドを自分で作成することはできます。これにより、開いているアプリが通常の方法で閉じられます。異常ではありませんkillUIApplicationDelegateアプリがマルチタスクをサポートしている場合、アプリはバックグラウンドに移行し、途中ですべての通常のコールバックが行われます。

  1. 非グラフィカル iOS アプリケーションをビルドします。UIApplicationMain()呼び出しを取り除くだけですmain.m

  2. アプリケーションを GraphicsServices.framework にリンクします。これはプライベート フレームワークであるため、通常はリンク先のフレームワークを選択する[Xcodeビルド フェーズ]設定ウィンドウでは、公開リストには表示されません。ファイル システムでPrivate Frameworksフォルダー (例: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk/System/Library/PrivateFrameworks) に移動し、それを選択します。

  3. GSEvent.h (および #include されている GSWindow.h) のヘッダーを生成する必要があります。 ここでは、両方のコピーを見つけることができます。それらをプロジェクトとファイルに追加し#include GSEvent.hますmain.m

  4. この関数を使用します。

#include "GSEvent.h"

- (void)simulateHomeButton
{
   struct GSEventRecord record;
   memset(&record, 0, sizeof(record));
   record.type = kGSEventMenuButtonDown;
   record.timestamp = GSCurrentEventTimestamp();
   GSSendSystemEvent(&record);
   record.type = kGSEventMenuButtonUp;
   GSSendSystemEvent(&record);
}

このコードは、現在のアプリを閉じる方法 (つまり、フォアグラウンドにある UIApplication 内でコードが実行される)、または別の開いているアプリ (コマンド ライン ユーティリティを構築する場合など) として使用できる必要があります。

アイデアについては、 libActivatorへのハットチップ。

于 2013-04-14T09:53:53.993 に答える