1

Мне нужно проверить полный доступ для пользовательского расширения клавиатуры. Я нашел эту ссылку.Проверьте полный доступ для пользовательского расширения клавиатуры

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

Он сказал, что мы можем проверить группу App. У меня есть группа приложений, называемая group.TTT.TGroup. Он предоставляет общий доступ к главному приложению и пользовательской клавиатуре.

После этого, я проверяю, как это. Проблема в том, что я всегда имею доступ к этому (всегда имеет массив или error = 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; 
+0

Я думаю, что его случай симулятора не ведет себя так же, как и устройство. Без полного доступа вы не можете читать файлы в папке групповой группы приложений. Но вы можете на тренажере. –

+0

Что такое основное приложение? я просто попытался отключить основную группу приложений для общего доступа к приложениям и все еще могу проверить полный доступ – TomSawyer

ответ

3

Вы можете попробовать считывании значения из разделяемой NSUserDefaults - если значение равно нулю, то allowFullAccess выключен

Или вы можете попробовать чтение файлов из общей файловой системы с помощью containerURLForSecurityApplicationGroupIdentifier

+1

Проверка того, работает ли общая папка пользователя, т.е. контейнерURLForSecurityApplicationGroupIdentifier – jjxtra

+0

@PsychoDad добавлен в мой ответ - спасибо – nurxyz

+0

Обратите внимание: на симуляторе вы можете читать файлы из общего приложения групповой папки, даже если полный доступ отключен. Но на устройстве полный доступ означает отсутствие доступа к файлам. –

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 
} 
+0

, что вы пытаетесь сказать? объясни это. – Kumar