在Springboard中有一个函数
- (BOOL)deviceIsInNowPlaying;
- (BOOL)musicIsPlaying;
在开源工程libactivator中有如下的和音乐控制相关的函数
- (BOOL)togglePlayback
{
[CHSharedInstance(SBMediaController) togglePlayPause];
return YES;
}
- (BOOL)previousTrack
{
[CHSharedInstance(SBMediaController) changeTrack:-1];
return YES;
}
- (BOOL)nextTrack
{
[CHSharedInstance(SBMediaController) changeTrack:1];
return YES;
}
- (BOOL)musicControls
{
SBAlertItemsController *controller = CHSharedInstance(SBAlertItemsController);
if ([controller isShowingAlertOfClass:CHClass(SBNowPlayingAlertItem)]) {
[controller deactivateAlertItemsOfClass:CHClass(SBNowPlayingAlertItem)];
return NO;
}
shouldAddNowPlayingButton = NO;
SBNowPlayingAlertItem *newAlert = [CHAlloc(SBNowPlayingAlertItem) init];
[controller activateAlertItem:newAlert];
[newAlert release];
return YES;
}
都是在LASimpleListener.m中
另外还有一些很有用的相关函数
摘录如下
- (BOOL)homeButton
{
struct GSEventRecord record;
memset(&record, 0, sizeof(record));
record.type = kGSEventMenuButtonDown;
record.timestamp = GSCurrentEventTimestamp();
GSSendSystemEvent(&record);
record.type = kGSEventMenuButtonUp;
GSSendSystemEvent(&record);
return YES;
}
- (BOOL)sleepButton
{
struct GSEventRecord record;
memset(&record, 0, sizeof(record));
record.type = kGSEventLockButtonDown;
record.timestamp = GSCurrentEventTimestamp();
GSSendSystemEvent(&record);
record.type = kGSEventLockButtonUp;
GSSendSystemEvent(&record);
return YES;
}
- (BOOL)respring
{
[(SpringBoard *)[UIApplication sharedApplication] relaunchSpringBoard];
return YES;
}
/* // A safeMode method isn't needed; it should safe mode anyway :P
- (void)safeMode
{
[(SpringBoard *)[UIApplication sharedApplication] enterSafeMode];
}*/
- (BOOL)reboot
{
[(SpringBoard *)[UIApplication sharedApplication] reboot];
return YES;
}
- (BOOL)powerDown
{
[(SpringBoard *)[UIApplication sharedApplication] powerDown];
return YES;
}
- (BOOL)spotlight
{
[[LAApplicationListener sharedInstance] activateApplication:nil];
[CHSharedInstance(SBIconController) scrollToIconListAtIndex:-1 animate:NO];
[[CHSharedInstance(SBSearchController) searchView] setShowsKeyboard:YES animated:YES];
return YES;
}
- (BOOL)takeScreenshot
{
SBScreenShotter *screenShotter = CHSharedInstance(SBScreenShotter);
if (screenShotter.writingScreenshot)
return NO;
[screenShotter saveScreenshot:YES];
return YES;
}
- (BOOL)voiceControl
{
SBVoiceControlAlert *alert = [CHAlloc(SBVoiceControlAlert) init];
[alert activate];
[alert release];
return YES;
}
- (BOOL)showLockScreen
{
SBUIController *controller = CHSharedInstance(SBUIController);
[controller lock];
[controller wakeUp:nil];
return YES;
}
- (BOOL)dismissLockScreen
{
[[CHClass(SBAwayController) sharedAwayController] unlockWithSound:YES];
[[CHClass(SBStatusBarController) sharedStatusBarController] setIsLockVisible:NO isTimeVisible:YES];
return YES;
}
- (BOOL)toggleLockScreen
{
return [[CHClass(SBAwayController) sharedAwayController] isLocked]
? [self dismissLockScreen]
: [self showLockScreen];
}
- (BOOL)deviceIsInNowPlaying;
- (BOOL)musicIsPlaying;
在开源工程libactivator中有如下的和音乐控制相关的函数
- (BOOL)togglePlayback
{
[CHSharedInstance(SBMediaController) togglePlayPause];
return YES;
}
- (BOOL)previousTrack
{
[CHSharedInstance(SBMediaController) changeTrack:-1];
return YES;
}
- (BOOL)nextTrack
{
[CHSharedInstance(SBMediaController) changeTrack:1];
return YES;
}
- (BOOL)musicControls
{
SBAlertItemsController *controller = CHSharedInstance(SBAlertItemsController);
if ([controller isShowingAlertOfClass:CHClass(SBNowPlayingAlertItem)]) {
[controller deactivateAlertItemsOfClass:CHClass(SBNowPlayingAlertItem)];
return NO;
}
shouldAddNowPlayingButton = NO;
SBNowPlayingAlertItem *newAlert = [CHAlloc(SBNowPlayingAlertItem) init];
[controller activateAlertItem:newAlert];
[newAlert release];
return YES;
}
都是在LASimpleListener.m中
另外还有一些很有用的相关函数
摘录如下
- (BOOL)homeButton
{
struct GSEventRecord record;
memset(&record, 0, sizeof(record));
record.type = kGSEventMenuButtonDown;
record.timestamp = GSCurrentEventTimestamp();
GSSendSystemEvent(&record);
record.type = kGSEventMenuButtonUp;
GSSendSystemEvent(&record);
return YES;
}
- (BOOL)sleepButton
{
struct GSEventRecord record;
memset(&record, 0, sizeof(record));
record.type = kGSEventLockButtonDown;
record.timestamp = GSCurrentEventTimestamp();
GSSendSystemEvent(&record);
record.type = kGSEventLockButtonUp;
GSSendSystemEvent(&record);
return YES;
}
- (BOOL)respring
{
[(SpringBoard *)[UIApplication sharedApplication] relaunchSpringBoard];
return YES;
}
/* // A safeMode method isn't needed; it should safe mode anyway :P
- (void)safeMode
{
[(SpringBoard *)[UIApplication sharedApplication] enterSafeMode];
}*/
- (BOOL)reboot
{
[(SpringBoard *)[UIApplication sharedApplication] reboot];
return YES;
}
- (BOOL)powerDown
{
[(SpringBoard *)[UIApplication sharedApplication] powerDown];
return YES;
}
- (BOOL)spotlight
{
[[LAApplicationListener sharedInstance] activateApplication:nil];
[CHSharedInstance(SBIconController) scrollToIconListAtIndex:-1 animate:NO];
[[CHSharedInstance(SBSearchController) searchView] setShowsKeyboard:YES animated:YES];
return YES;
}
- (BOOL)takeScreenshot
{
SBScreenShotter *screenShotter = CHSharedInstance(SBScreenShotter);
if (screenShotter.writingScreenshot)
return NO;
[screenShotter saveScreenshot:YES];
return YES;
}
- (BOOL)voiceControl
{
SBVoiceControlAlert *alert = [CHAlloc(SBVoiceControlAlert) init];
[alert activate];
[alert release];
return YES;
}
- (BOOL)showLockScreen
{
SBUIController *controller = CHSharedInstance(SBUIController);
[controller lock];
[controller wakeUp:nil];
return YES;
}
- (BOOL)dismissLockScreen
{
[[CHClass(SBAwayController) sharedAwayController] unlockWithSound:YES];
[[CHClass(SBStatusBarController) sharedStatusBarController] setIsLockVisible:NO isTimeVisible:YES];
return YES;
}
- (BOOL)toggleLockScreen
{
return [[CHClass(SBAwayController) sharedAwayController] isLocked]
? [self dismissLockScreen]
: [self showLockScreen];
}