我已经审阅了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;
}
答案 0 :(得分:1)
在Shazam应用中,第一个屏幕只是UIView
,带有一些文字和按钮。
在按钮(不允许和确定)中,他们正在调用值为YES
和NO
的块。
如果用户点击不允许按钮,系统会显示系统生成的提醒。
您可以通过在属性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;
}
};