1

我需要檢查自定義鍵盤擴展的完整權限。我找到了這個鏈接。檢查自定義鍵盤擴展的完整權限

How to check the "Allow Full Access" is enabled in 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; 
+0

我認爲它的一個模擬器的行爲不像設備一樣。如果沒有完全訪問權限,則無法讀取共享應用程序組文件夾中的文件。但你可以在模擬器上。 – 2014-10-17 15:50:24

+0

什麼是主要應用程序?我只是試圖禁用主應用程序共享應用程序組,並仍然可以檢查完全訪問 – TomSawyer 2014-11-10 10:20:10

回答

3

你可以嘗試閱讀從價值共享NSUserDefaults - 如果該值爲null,則allowFullAccess熄滅

,也可以使用嘗試讀取從共享文件系統的文件containerURLForSecurityApplicationGroupIdentifier

+1

檢查共享用戶文件夾是否也工作,即containerURLForSecurityApplicationGroupIdentifier – jjxtra 2014-10-04 16:53:24

+0

@PsychoDad添加到我的答案 - 謝謝 – nurxyz 2014-10-06 14:21:22

+0

請注意,在模擬器上,您可以從共享應用程序讀取文件組文件夾,即使完全訪問關閉。但在設備上完全訪問意味着無法訪問文件。 – 2014-10-17 15:51:18

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 2015-08-05 11:04:35