2015-08-19 92 views
1

我有一個使用位置服務和後臺應用刷新一個應用程序,我想包括這2首在我自己的應用程序的設置頁面,使用戶可以在一個地方做而不是去設置應用程序。您可以更改iPhone的隱私設置以編程方式iOS7或iOS8上

是否有可能在iOS7或iOS8上?我知道有幾個應用程序正在這樣做。

+0

是你可以做的,只是如果你的應用程序首選項禁用不使用的位置,或者可能被初始化您的服務後臺刷新代碼它。但是如果沒有通過設置禁用後臺刷新,它將嘗試呼叫。 – iphonic

+0

你好Nupur,我的回答有幫助嗎? –

回答

0

這將促使以獲得應用程序的位置服務最初的警報是由OS而不是由應用程序引起的。 這將被觸發,因爲您將在應用程序中啓用基於位置的設置。

但是,如果用戶拒絕它的第一次,根據用戶偏好否認針對特定應用的位置服務的OS,這是用戶的隱私。 由於蘋果是非常關心用戶的隱私設置,用戶再次接受這些設置時,應明確地再次從設置軟件來實現,這是不可能從應用層面實現它。 因爲它無關的應用程序,並根據其純粹的操作系統,作爲一個開發者,我們不能忽略它。

相反,我們可以檢測到用戶當前的隱私設置位置,如果沒有訪問狀態,那麼你可能會提示用戶的警告上用戶可以直接導航到設置應用程序後更改設置。

if([CLLocationManager locationServicesEnabled]){ 

    if([CLLocationManager authorizationStatus]==kCLAuthorizationStatusDenied){ 
     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:ICLocalizedString(@"LocationServicesPermissionTitle") 
               message:ICLocalizedString(@"LocationPermissionGeoFenceMessage") 
               delegate:self 
             cancelButtonTitle:@"Settings" 
             otherButtonTitles:nil]; 
     [alert show]; 
    } 
} 

UIAlertView中代表:

-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 
{ 
    [alertView dismissWithClickedButtonIndex:buttonIndex animated:YES]; 
    [[UIApplication sharedApplication] openURL: [NSURL URLWithString: UIApplicationOpenSettingsURLString]]; 
} 
+0

謝謝,這是有道理的 –

相關問題