检查自定义键盘扩展的完全访问权限

时间:2014-09-27 06:54:13

标签: objective-c ios8 ios-app-extension custom-keyboard ios-app-group

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

How to check the "Allow Full Access" is enabled in iOS 8?

它说我们可以查看App组。我有app组称为“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;

2 个答案:

答案 0 :(得分:4)

您可以尝试从共享NSUserDefaults中读取值 - 如果值为null,则禁用allowFullAccess

或者您可以尝试使用containerURLForSecurityApplicationGroupIdentifier

从共享文件系统中读取文件

答案 1 :(得分: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
}