1

我需要检查自定义键盘扩展的完全访问权限。我找到了这个链接。

如何检查 iOS 8 中是否启用了“允许完全访问”?

它说我们可以检查应用程序组。我有一个名为“group.TTT.TGroup”的应用程序组。它在主应用程序和自定义键盘之间共享访问权限。

然后,我像这样检查。问题是我总是可以访问它(总是有数组或错误= null)。是因为我共享相同的数据吗?但是,如果我的应用程序使用另一个应用程序组并且扩展程序使用其他应用程序组,我肯定无法访问它。我可以知道该怎么做吗?

NSFileManager* fileManager = [NSFileManager defaultManager];
NSString *path = [fileManager containerURLForSecurityApplicationGroupIdentifier:@"group.TTT.TGroup"].path;
NSError *error;
NSArray *arr = [fileManager contentsOfDirectoryAtPath:path error:&error];

NSLog(@" arr is %@",arr);
if (arr == nil || !arr) //can check error also
    accessOn = NO;

else accessOn = YES;
4

2 回答 2

5

您可以尝试从共享中读取一个值NSUserDefaults- 如果该值为 null,则 allowFullAccess 处于关闭状态

或者您可以尝试使用从共享文件系统读取文件containerURLForSecurityApplicationGroupIdentifier

于 2014-10-02T22:16:53.150 回答
1
+(bool)fullAccessAccessible{
    NSUserDefaults *myDefaults = [[NSUserDefaults alloc]
                              initWithSuiteName:APP_GROUP_NAME];
    NSString* test_key = @"extension test full access";
    [myDefaults setBool:TRUE forKey:test_key];
    BOOL res = [myDefaults boolForKey:test_key];
    return res == TRUE;//set and get compare
}
于 2015-08-05T10:45:26.617 回答