1

バックグラウンド音声プロセスを開始する方法。シミュレーターは iOS のバックグラウンド モードをサポートしていますか。

これは、バックグラウンド プロセスを開始するための私のコードです。しかし、機能していません。ホーム ボタンを押すと、記録が停止します。

-(void)applicationDidEnterBackground:(UIApplication *)application
{
    if ([[UIDevice currentDevice] respondsToSelector:@selector(isMultitaskingSupported)]) { //Check if our iOS version supports multitasking I.E iOS 4
        if ([[UIDevice currentDevice] isMultitaskingSupported]) { //Check if device supports multitasking
            UIApplication *application = [UIApplication sharedApplication]; //Get the shared application instance
            __block UIBackgroundTaskIdentifier background_task; //Create a task object
            background_task = [application beginBackgroundTaskWithExpirationHandler: ^ {
                [application endBackgroundTask: background_task]; //Tell the system that we are done with the tasks
                background_task = UIBackgroundTaskInvalid; //Set the task to be invalid
                //System will be shutting down the app at any point in time now
            }];
            //Background tasks require you to use asyncrous tasks
            dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                //Perform your tasks that your application requires
                NSLog(@"\n\nRunning in the background!\n\n");
                NSString *pollingTimer2 = [NSTimer scheduledTimerWithTimeInterval:1
                                                                           target:self
                                                                         selector:@selector(recordPauseTapped:)
                                                                         userInfo:nil
                                                                          repeats:YES];
                [application endBackgroundTask: background_task]; //End the task so the system knows that you are done with what you need to perform
                background_task = UIBackgroundTaskInvalid; //Invalidate the background_task
            });
        }
    }

}
4

4 に答える 4

1

デバイスがマルチタスクをサポートしているかどうかを確認するには、次のコードを使用します:-

if ([[UIDevice currentDevice] isMultitaskingSupported])

シミュレータにはハードウェアの制限がいくつかありますが、これには以下が含まれます:-

-加速度計 -
ジャイロスコープ -カメラ
-
近接センサー
-マイク入力
デバイスでアプリをテストするには、iOS 開発者プログラムのメンバーである必要があります。iOS Developer Program への登録の詳細については、App Distribution Guide の「Apple Developer Program への登録とそのツールへのアクセス」を参照してください。これらすべての機能をシミュレーターでテストすることはできません

于 2013-09-19T07:17:42.607 に答える
0

バックグラウンド モードはシミュレーターでサポートされていますが、条件 (以下のように) はシミュレーターで失敗するため、問題が発生します。

if ([[UIDevice currentDevice] isMultitaskingSupported])

于 2013-09-02T09:12:11.267 に答える