我想在我的广告中以特定方向展示admob插页式广告,具体取决于我从服务器获取的配置
在我展示广告之前,我设置了这样的活动方向(例如,如果我想要风景):
#pragma mark - WCSession Delegate
- (void)session:(WCSession *)session didReceiveMessage:(NSDictionary<NSString *, id> *)message replyHandler:(void(^)(NSDictionary<NSString *, id> *replyMessage))replyHandler
{
if(message){
NSData *receivedData = [message objectForKey:@"AudioData"];
NSDictionary* response = @{@"response" : [NSString stringWithFormat:@"Data length: %lu",(unsigned long)receivedData.length]} ;
replyHandler(response);
}
}
#pragma mark - Standard WatchKit Delegate
-(void)sessionWatchStateDidChange:(nonnull WCSession *)session
{
if(WCSession.isSupported){
WCSession* session = WCSession.defaultSession;
session.delegate = self;
[session activateSession];
if(session.reachable){
NSLog(@"session.reachable");
}
if(session.paired){
if(session.isWatchAppInstalled){
if(session.watchDirectoryURL != nil){
}
}
}
}
}
在清单中我有这个属性,说我处理方向改变:
@Override
public void onConfigurationChanged(Configuration newConfig){
if ((VeediUtils.gamePreferences.getOrientation() != null)) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
newConfig.orientation = Configuration.ORIENTATION_LANDSCAPE;
}
if (Build.VERSION.SDK_INT > 17) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LOCKED);
};
super.onConfigurationChanged(newConfig);
}
问题在于,admob广告仍然以纵向显示方向不会改变为风景
答案 0 :(得分:1)
onConfigurationChanged
是一个回调函,通知您配置已更改。它不是改变屏幕方向的手段。
您需要在其他位置更改屏幕方向,可能在显示插页式广告之前。
NB改变这样的屏幕方向将是一个非常令人沮丧和恼人的用户体验。我会建议反对它。