Nové smartwatch Samsung Gear S2 podporují i konkurenční androidové telefony

8. 9. 2015

Sdílet

Autor: Samsung
Společnost Samsung představila nové chytré hodinky s názvem Gear S2, které jsou na rozdíl od těch předchozích kompatibilní i s androidovými telefony konkurence. Podaří se Korejcům konečně ukousnout si větší podíl z trhu se smartwatch na úkor Apple?

Nové hodinky Gear S2 běží stejně jako předchozí generace na operačním systému Tizen, avšak vůbec poprvé mají kulatý ciferník s 1,2palcovým Amoled displejem (rozlišení 360 x 360 pixelů, 302 ppi). Stejně jako první verzi hodinek s názvem Gear S, i Gear S2 pohání blíže nespecifikovaný dvoujádrový procesor na frekvenci 1 GHz, který má k dispozici 512 MB paměti RAM.

Data lze ukládat na 4GB flashový disk. Nechybí 2MP fotoaparát, který je schopný nahrávat HD video (1280 x 720 pixelů) při 30 FPS a podporuje automatické zaostřování.

Stejně jako předchozí model hodinek, i Gear S2 jsou vybaveny řadou senzorů. Nechybí snímač srdečního tepu, gyroskop, barometr, či senzor pro rozpoznání okolního světla. Rozměry hodinek jsou 42.3 x 49.8 x 11.4 mm, hmotnost pak 47 gramů.

Standardní model Gear S2 bez podpory 3G připojení je vybaven250mAh baterií, která na jedno nabytí vydrží 2-3 dny. Model s podporou 3G je opatřen větší 300mAh baterií, jejíž výdrž Samsung při běžném provozu odhaduje na dva dny. Obě verze hodinek podporují bezdrátové dobíjení skrze dokovací stanici.

Stejně jako jiné chytré hodinky, i Gear S2 se k telefonu připojují přes Bluetooth, přičemž nechybí ani podpora Wi-Fi a technologie NFC. Model s 3G připojením pak umí fungovat zcela samostatně i bez připojeného telefonu.

Největší novinkou oproti předchozím modelům chytrých hodinek od Samsungu je to, že Gear S2 je možné spárovat nejen s telefony a tablety Samsungu, ale se všemi androidovými zařízeními s Androidem 4.4 a vyšším.

Na svých stránkách Samsung vyjmenovává více než tři desítky konkurenčních produktů, které je možné s hodinkami propojit. Na druhou stranu platební službu Samsung Paymohou uživatelé použít pouze tehdy, pokud Gear S2 spárují se zařízením Samsungu.

„Otevření“ hodinek Samsungu konkurenci přichází krátce poté, co Google na svém blogu informoval o tom, že jeho operační systém Android Wear od nynějška podporuje iPhony 5, 5c, 5s, 6 a 6 Plus s iOS 8.2 a vyšším.

Otázkou však je, zda budou mít uživatelé o spárování iPhonu s androidovými hodinkami vůbec zájem - jak totiž dodává třeba portál AndroidPolice, běžný uživatel iPhonu s největší pravděpodobností vůbec neví, že nějaký Android Wear existuje.

Cyber25

Důvod, proč Google přidal do Android Wear podporu iOS a Samsung začal podporovat konkurenční androidová zařízení, je zřejmý: Android na trhu s chytrými hodinkami zatím viditelně prohrává. Zatímco Apple ve druhém čtvrtletí tohoto roku prodal 3,6 milionů kusů Apple Watch, což reprezentovalo celou pětinuvšech prodaných chytrých hodinek, podíl Samsungu byl pouze 3,3%. Jak dodávají analytici společnosti IDC, pokud by Samsung zůstal u své dosavadní politiky, měl by to s dalším růstem těžké.

Cena nových hodinek Samsungu byla stanovena na 349 euro, což je v přepočtu zhruba 9500 Kč. Model Gear S2 Classic s koženým řemínkem pak bude stát o padesát euro více. Hodinky budou dostupné v černém, zlatohnědém a oranžovém provedení. Kdy se nové smartwatchdostanou do České republiky zatím není jasné.

'; document.getElementById('preroll-iframe').onload = function () { setupIframe(); } prerollContainer = document.getElementsByClassName('preroll-container-iframe')[0]; } function setupIframe() { prerollDocument = document.getElementById('preroll-iframe').contentWindow.document; let el = prerollDocument.createElement('style'); prerollDocument.head.appendChild(el); el.innerText = "#adContainer>div:nth-of-type(1),#adContainer>div:nth-of-type(1) > iframe { width: 99% !important;height: 99% !important;max-width: 100%;}#videoContent,body{ width:100vw;height:100vh}body{ font-family:'Helvetica Neue',Arial,sans-serif}#videoContent{ overflow:hidden;background:#000}#adMuteBtn{ width:35px;height:35px;border:0;background:0 0;display:none;position:absolute;fill:rgba(230,230,230,1);bottom:20px;right:25px}"; videoContent = prerollDocument.getElementById('contentElement'); videoContent.style.display = 'none'; videoContent.volume = 1; videoContent.muted = false; const playPromise = videoContent.play(); if (playPromise !== undefined) { playPromise.then(function () { console.log('PREROLL sound allowed'); // setUpIMA(true); videoContent.volume = 1; videoContent.muted = false; setUpIMA(); }).catch(function () { console.log('PREROLL sound forbidden'); videoContent.volume = 0; videoContent.muted = true; setUpIMA(); }); } } function setupDimensions() { prerollWidth = Math.min(iinfoPrerollPosition.offsetWidth, 480); prerollHeight = Math.min(iinfoPrerollPosition.offsetHeight, 320); } function setUpIMA() { google.ima.settings.setDisableCustomPlaybackForIOS10Plus(true); google.ima.settings.setLocale('cs'); google.ima.settings.setNumRedirects(10); // Create the ad display container. createAdDisplayContainer(); // Create ads loader. adsLoader = new google.ima.AdsLoader(adDisplayContainer); // Listen and respond to ads loaded and error events. adsLoader.addEventListener( google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, onAdsManagerLoaded, false); adsLoader.addEventListener( google.ima.AdErrorEvent.Type.AD_ERROR, onAdError, false); // An event listener to tell the SDK that our content video // is completed so the SDK can play any post-roll ads. const contentEndedListener = function () { adsLoader.contentComplete(); }; videoContent.onended = contentEndedListener; // Request video ads. const adsRequest = new google.ima.AdsRequest(); adsRequest.adTagUrl = iinfoVastUrls[iinfoVastUrlIndex]; console.log('Preroll advert: ' + iinfoVastUrls[iinfoVastUrlIndex]); videoContent.muted = false; videoContent.volume = 1; // Specify the linear and nonlinear slot sizes. This helps the SDK to // select the correct creative if multiple are returned. // adsRequest.linearAdSlotWidth = prerollWidth; // adsRequest.linearAdSlotHeight = prerollHeight; adsRequest.nonLinearAdSlotWidth = 0; adsRequest.nonLinearAdSlotHeight = 0; adsLoader.requestAds(adsRequest); } function createAdDisplayContainer() { // We assume the adContainer is the DOM id of the element that will house // the ads. prerollDocument.getElementById('videoContent').style.display = 'none'; adDisplayContainer = new google.ima.AdDisplayContainer( prerollDocument.getElementById('adContainer'), videoContent); } function unmutePrerollAdvert() { adVolume = !adVolume; if (adVolume) { adsManager.setVolume(0.3); prerollDocument.getElementById('adMuteBtn').innerHTML = ''; } else { adsManager.setVolume(0); prerollDocument.getElementById('adMuteBtn').innerHTML = ''; } } function onAdsManagerLoaded(adsManagerLoadedEvent) { // Get the ads manager. const adsRenderingSettings = new google.ima.AdsRenderingSettings(); adsRenderingSettings.restoreCustomPlaybackStateOnAdBreakComplete = true; adsRenderingSettings.loadVideoTimeout = 12000; // videoContent should be set to the content video element. adsManager = adsManagerLoadedEvent.getAdsManager(videoContent, adsRenderingSettings); // Add listeners to the required events. adsManager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, onAdError); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED, onContentPauseRequested); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED, onContentResumeRequested); adsManager.addEventListener( google.ima.AdEvent.Type.ALL_ADS_COMPLETED, onAdEvent); // Listen to any additional events, if necessary. adsManager.addEventListener(google.ima.AdEvent.Type.LOADED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.STARTED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.COMPLETE, onAdEvent); playAds(); } function playAds() { // Initialize the container. Must be done through a user action on mobile // devices. videoContent.load(); adDisplayContainer.initialize(); // setupDimensions(); try { // Initialize the ads manager. Ad rules playlist will start at this time. adsManager.init(1920, 1080, google.ima.ViewMode.NORMAL); // Call play to start showing the ad. Single video and overlay ads will // start at this time; the call will be ignored for ad rules. adsManager.start(); // window.addEventListener('resize', function (event) { // if (adsManager) { // setupDimensions(); // adsManager.resize(prerollWidth, prerollHeight, google.ima.ViewMode.NORMAL); // } // }); } catch (adError) { // An error may be thrown if there was a problem with the VAST response. // videoContent.play(); } } function onAdEvent(adEvent) { const ad = adEvent.getAd(); console.log('Preroll event: ' + adEvent.type); switch (adEvent.type) { case google.ima.AdEvent.Type.LOADED: if (!ad.isLinear()) { videoContent.play(); } prerollDocument.getElementById('adContainer').style.width = '100%'; prerollDocument.getElementById('adContainer').style.maxWidth = '640px'; prerollDocument.getElementById('adContainer').style.height = '360px'; break; case google.ima.AdEvent.Type.STARTED: window.addEventListener('scroll', onActiveView); if (ad.isLinear()) { intervalTimer = setInterval( function () { // Example: const remainingTime = adsManager.getRemainingTime(); // adsManager.pause(); }, 300); // every 300ms } prerollDocument.getElementById('adMuteBtn').style.display = 'block'; break; case google.ima.AdEvent.Type.ALL_ADS_COMPLETED: if (ad.isLinear()) { clearInterval(intervalTimer); } if (prerollLastError === 303) { playYtVideo(); } break; case google.ima.AdEvent.Type.COMPLETE: if (ad.isLinear()) { clearInterval(intervalTimer); } playYtVideo(); break; } } function onAdError(adErrorEvent) { console.log(adErrorEvent.getError()); prerollLastError = adErrorEvent.getError().getErrorCode(); if (!loadNext()) { playYtVideo(); } } function loadNext() { iinfoVastUrlIndex++; if (iinfoVastUrlIndex < iinfoVastUrls.length) { iinfoPrerollPosition.remove(); playPrerollAd(); } else { return false; } adVolume = 1; return true; } function onContentPauseRequested() { videoContent.pause(); } function onContentResumeRequested() { videoContent.play(); } function onActiveView() { if (prerollContainer) { const containerOffset = prerollContainer.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight/1 && containerOffset.bottom > 0.0) { if (prerollPaused) { adsManager.resume(); prerollPaused = false; } return true; } else { if (!prerollPaused) { adsManager.pause(); prerollPaused = true; } } } return false; } function playYtVideo() { iinfoPrerollPosition.remove(); youtubeIframe.style.display = 'block'; youtubeIframe.src += '&autoplay=1&mute=1'; } }
OSZAR »