2013-02-11 65 views
0

我使用ALAssetsLibrary訪問我的應用中的照片,當應用第一次嘗試訪問照片時,它會要求獲取位置服務的權限。我想爲該警報提供自定義消息,如應用程序想要訪問您的照片,而不是位置服務。ALAssetsLibrary自定義位置服務權限提醒iPhone

我在谷歌搜索了很多,以及對堆棧溢出,我發現解決方案後,用戶拒絕了位置服務的權限,但不能爲自定義的消息我已經在許多應用程序,如InstaCollage,PIC競合等

看到了這一點

Pic Jointer Alert Image

回答

3

你不能(因爲你毫無疑問在你的搜索中看到)。這是一條系統消息,你不能覆蓋它或避免它。換句話說:不意味着不。

+0

Pic Jointer應用程序在圖像中顯示上面提到的警報,當我們想要第一次獲取照片而不是系統生成時,有沒有什麼方法顯示像上面的圖像那樣的備用警報。 – 2013-02-11 07:55:24

+0

@ robin.cssoft - 這是一條系統消息。沒有任何解決辦法。這是一個安全問題,因爲'ALAssets'可能包含位置數據。如果用戶拒絕訪問,則無法訪問它。您可以提前詢問用戶 - 在您嘗試訪問圖書館之前 - 然後再根據該圖書館做一些事情:但並不意味着不行。 – 2013-02-11 08:12:46

+0

好的感謝您的幫助skinnyTOD – 2013-02-11 08:51:08

0

你可以做一件事..

您只需查看應用程序的位置服務設置,而你的應用程序加載和顯示自定義消息

#import <CoreLocation/CoreLocation.h> 

-(void)showAlertForLocationServiceEnabled{ 


    BOOL locationAllowed = [CLLocationManager locationServicesEnabled]; 

    if (locationAllowed == NO) { 

     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Location Service Disabled!!!" 
                 message:@"Location Services is required for this application. Please enable Location Services" 
                 delegate:nil 
               cancelButtonTitle:@"OK" 
               otherButtonTitles:nil]; 
     [alert show]; 

    } 
} 

-(void)checkAndNotifyLocationServiceAvailable{ 

    if (! ([CLLocationManager locationServicesEnabled]) || ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusDenied)){ 

     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Location Service Disabled!!!" message:@"Location Services is required for this application. Please enable Location Services" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
     [alert show]; 


    } 

} 
2

開始在iOS 6中您可以將自定義文本添加到警報對話框(以指定您對數據進行的操作等)。要設置此說明文本,請添加

NSPhotoLibraryUsageDescription 

鍵Info.plist並將值設置爲您要顯示的文本。

從開發文檔:

NSPhotoLibraryUsageDescription(字符串 - iOS設備)描述了應用程序訪問用戶的照片庫的原因。當系統提示用戶允許訪問時,該字符串將顯示爲對話框的一部分。 此密鑰在iOS 6.0及更高版本中受支持。

+0

只是澄清,因爲原始鍵名不是默認顯示,'友好'的關鍵文字是:「隱私 - 照片庫使用說明」。日曆,聯繫人,地點和提醒也以「隱私 - ...」開頭 – qix 2013-08-23 10:25:47