显示Shazam应用程序等自定义提醒,以获取AVAudioSession的权限

时间:2014-05-01 06:37:13

标签: ios ios7

我已经审阅了Stackoverflow链接: - How to check for microphone access at time of launch?

但我希望在Shazam应用程序中显示获得许可的全屏警报。

应用网站: - https://support.shazam.com/entries/26560426-Microphone-access-now-required-iOS7-

应用链接: - https://itunes.apple.com/us/app/shazam/id284993459?mt=8

我想像这样显示警报。任何人都可以帮我解决这个问题吗?

到目前为止我尝试过的代码: -

-(BOOL)requestforpermisssion
{

     __block BOOL result=NO;


    #ifndef __IPHONE_7_0
       typedef void (^PermissionBlock)(BOOL granted);
    #endif


        PermissionBlock permissionBlock = ^(BOOL granted)
        {
            if (granted)
            {
                [self setupRecording];
                result = YES;
            }
            else
            {
                // Warn no access to microphone
                result = NO;
            }
        };

        // iOS7+



            if([[AVAudioSession sharedInstance] respondsToSelector:@selector(requestRecordPermission:)])
            {
                [[AVAudioSession sharedInstance] performSelector:@selector(requestRecordPermission:)
                                                      withObject:permissionBlock];
            }



  return result;
}

1 个答案:

答案 0 :(得分:1)

在Shazam应用中,第一个屏幕只是UIView,带有一些文字和按钮。

enter image description here

在按钮(不允许确定)中,他们正在调用值为YESNO的块。

如果用户点击不允许按钮,系统会显示系统生成的提醒。

enter image description here

您可以通过在属性Privacy - Microphone Usage Description中添加字符串值来更改系统生成的警报的说明。在 Info.plist 文件中添加此属性。

Permission区块中

PermissionBlock permissionBlock = ^(BOOL granted)
        {
            if (granted)
            {
                [self setupRecording];
                result = YES;
            }
            else
            {
                // Warn no access to microphone
                result = NO;
            }
        };