gpt4 book ai didi

iphone - 如何以编程方式将传入的 iPhone 短信静音?

转载 作者:行者123 更新时间:2023-12-03 18:40:08 27 4
gpt4 key购买 nike

我目前正在尝试使用 AVSystemController 私有(private)框架根据​​用户的选择来消除系统噪音。我目前正在通过调用以下命令将电话静音:[(AVSystemController object) setVolumeTo:0.0 forCategory:@"Ringtone"];

是否有命令可以对传入的短信执行此操作?我想这将基于该电话中确定的类别的变化。但是,我找不到可供引用的类别列表。在我找到的 10 个中(警报、音频/视频、铃声、语音邮件、VoicemailGreeting、PhoneCall、TTYCall、RingtonePreview、Alarm、Record),它们都不能控制短信声音。有一个类别可以做到这一点吗?如果没有,是否有其他方法可以静音传入文本的声音?

我意识到这违反了苹果公司的非私有(private)框架政策,但是这个应用程序不会出现在应用程序商店中,所以这没有问题。我正在使用最新版本的 Xcode 为最新版本的 IOS 开发它,因此任何实现此目的的方法都是可行的。

最佳答案

@Jessica,你不能这样做,因为它受到限制。如果您想在您的应用程序中尝试它,那么您的应用程序可能会在应用程序商店中被拒绝。

因此,使用公共(public) API 是不可能的。

您找到的链接使用的是私有(private) API,这些 API 没有记录或保证按您期望的方式工作。如果您尝试发布调用私有(private) API 的 App Store 应用,它将被自动拒绝。

如果你想检查是否静音,请使用下面的代码,

    -(BOOL)silenced {
#if TARGET_IPHONE_SIMULATOR
// return NO in simulator. Code causes crashes for some reason.
return NO;
#endif

CFStringRef state;
UInt32 propertySize = sizeof(CFStringRef);
AudioSessionInitialize(NULL, NULL, NULL, NULL);
AudioSessionGetProperty(kAudioSessionProperty_AudioRoute, &propertySize, &state);
if(CFStringGetLength(state) > 0)
return NO;
else
return YES;

}


For completeness, building off this link from Dan Bon, I implement the following method to solve this problem in my apps. One thing to note is that the code checks for the iPhone simulator first - executing the below code will crash the simulator. Anyone know why?

-(BOOL)silenced {
#if TARGET_IPHONE_SIMULATOR
// return NO in simulator. Code causes crashes for some reason.
return NO;
#endif

CFStringRef state;
UInt32 propertySize = sizeof(CFStringRef);
AudioSessionInitialize(NULL, NULL, NULL, NULL);
AudioSessionGetProperty(kAudioSessionProperty_AudioRoute, &propertySize, &state);
if(CFStringGetLength(state) > 0)
return NO;
else
return YES;

}

在 View Controller 中声明此权限,您只需检查

if ([self silenced]) {
NSLog(@"silenced");

else {
NSLog(@"not silenced");
}

关于iphone - 如何以编程方式将传入的 iPhone 短信静音?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10016443/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com