我发现在 SpringBoard 中创建的变量不能被其他常规应用程序访问。但是现在我想制作一个可以在全局环境中有效共享状态的标志变量。
我认为在某个路径创建的文件可以做到这一点,但这可能不够快。
有人知道怎么做这个吗?
我发现在 SpringBoard 中创建的变量不能被其他常规应用程序访问。但是现在我想制作一个可以在全局环境中有效共享状态的标志变量。
我认为在某个路径创建的文件可以做到这一点,但这可能不够快。
有人知道怎么做这个吗?
您可以尝试将文件与此文件中的更改通知组合。进程之间的通知可以通过两种方式发送:
CFNotificationCenterGetDarwinNotifyCenter
CFNotificationCenterGetDistributedCenter
-私有API分布式通知中心更好,因为您可以发送带有一些附加数据的通知。达尔文通知中心忽略所有传递给它的用户信息。因此,当您更改某些标志并将其保存在文件中时,您可以使用该标志的新值发送通知。您甚至不需要自己打开文件并获取标志的值。所有其他应用程序只需要监听此通知。
这是CFNotificationCenterGetDistributedCenter
原型
CFNotificationCenterRef CFNotificationCenterGetDistributedCenter();
更新:
此功能在 iOS 5.0 及更高版本中可用。如果您需要支持旧版本,有两种解决方案:
如果你真的需要支持旧版本,我建议你使用 CFMessagePort。这是一个简单而灵活的解决方案,有据可查。如果您遇到问题,您总能找到工作示例。
您可以将您的 var 存储在 keyChain 中,并将所有想要共享它的应用程序放在一个访问组中。希望它有所帮助。