0

我有一个 iOS 应用程序,它是一个 TCP 服务器,它接收命令并与设备硬件上的某些东西对话。

示例命令是:

1:使用蓝牙建立连接

2:获取设备mac地址

3:从声卡读卡器读取

我需要这个应用程序始终运行。有人可以建议最好的行动方案

4

2 回答 2

2

每个人都“需要他们的应用程序始终运行”,但实际上很少有这种情况。Apple 不希望您不必要地耗尽用户的电池,因此他们设置了一些关于后台任务的规则。在某些情况下,您只能执行长时间运行的后台任务。你的似乎不适合任何人。

但是,有两种蓝牙背景模式(一种是iOS 5.0+,另一种是iOS 6.0+)。如果您的应用程序将始终与外部蓝牙配件通信,那么您的应用程序可能会通过审核。如果它只是坐在那里空闲等待命令,那么它很可能会被拒绝。到目前为止,我经常看到人们在 Stack Overflow 上抱怨的原因是“我的应用被拒绝了,因为 Apple 说我没有正确使用我声明的后台模式。” 如果后台模式的原因不是明显,那么我打赌它会被拒绝。Apple 会将您的应用程序置于后台,看到它似乎什么都不做,然后拒绝它。

于 2013-05-09T09:50:00.650 回答
0

对于后台任务,您可以使用以下代码:

[自我启动背景进程];

在您的 didFinishLaunchingWithOptions 中使用上述代码:

在该方法中编写以下代码:

-(void)startBackgroundProcess
{
    UIBackgroundTaskIdentifier bgTask = 0;
    UIApplication *app=[UIApplication sharedApplication];
    bgTask=[app beginBackgroundTaskWithExpirationHandler:^{
        [app endBackgroundTask:bgTask];
    }];

    -----
}

代替----你可以写你的代码

于 2013-05-09T09:42:30.820 回答