Sony SmartWatchã¯åœæã®ããªãè峿·±ãããã€ã¹ã§ãããäœããã®çç±ã§ããã§éçºããã€ãã¹ãããŸãã ãããããªã-ãããä¿®æ£ããŸãããïŒ äŸãšããŠããªãŒãã£ãªãã¬ãŒã€ãŒãå¶åŸ¡ããã·ã³ãã«ãªã¢ããªã±ãŒã·ã§ã³ãéçºããŸãã
ãã®èšäºã¯ãAndroidã®éçºããŒã«ãä¿æããåŽãå°ãªããšãæäœéç¥ã£ãŠãã人ãããã³åãæèšãèŠããããããã«ã€ããŠã®ã¬ãã¥ãŒãèªãã ãããŠããã®æ©èœãæç€ºãã人ã察象ãšããŠããŸãã
SmartWatchã®æåã®ããŒãžã§ã³ãš2çªç®ã®ããŒãžã§ã³çšã«ããã«éçºããŸãã
å¿
èŠãªã©ã€ãã©ãªãã€ã³ã¹ããŒã«ãã
Android SDK Managerãèµ·åãã
[ããŒã«]-> [ã¢ããªã³ãµã€ãã®ç®¡ç]ã«ç§»åããŸã
[ãŠãŒã¶ãŒå®çŸ©ãµã€ã ]ã¿ãã§ãSDKããæèšã®äžã«ã¢ãã¬ã¹ã远å ããŸãã
dl-developer.sonymobile.com/sdk_manager/Sony-Add-on-SDK.xml
å®éããã®SDKã¯æèšã ãã§ãªããããšãã°Smart Headsetãªã©ãSonyã®ä»ã®ããªãããŒãªããã€ã¹ããµããŒãããŠããŸãããããããããŸã§ã®ãšãããç§ãã¡ã¯æèšã ãã«èå³ããããŸãã

次ã«ããªã¹ãã«è¡šç€ºãããæ°ããããã±ãŒãžãéžæããŠã€ã³ã¹ããŒã«ããŸãã

å¿
èŠãªã©ã€ãã©ãªã«å ããŠãã€ã³ã¹ããŒã«åŸãå¿
ã
[Android SDKãã£ã¬ã¯ããª] / sdk /ã¢ããªã³/ addon-sony_add-on_sdk_2_1-sony-16 / samplesãã©ã«ããŒã確èªããŠãã ãã ã 絶察ã«ãã¹ãŠã®æèšæ©èœã䜿çšããäŸããããŸããããšãªãŒãã«ã€ããŠã®ã¿èª¬æããŸãã
ãšãã¥ã¬ãŒã¿ãŒãèŠã
ååãšããŠãå®éã®ã¯ããã¯çšã«éçºããæ¹ãã¯ããã«ç°¡åã§äŸ¿å©ã§ãããããã§ããšãã¥ã¬ãŒã¿ã«ã¯SDKãä»å±ããŠããŸãã ããã䜿çšããã«ã¯ã
AVD Managerã«ç§»åããŠããªã¹ãã«è¡šç€ºãããSonyã®æ°ããããã€ã¹ã®1ã€ãããšãã°
Xperia TãäœæããŸã
ã äž»ãªããšã¯ã
Sonyã¢ããªã³SDKã Targetãã©ã¡ãŒã¿ãŒãšããŠéžæãããããšã§ãã

ããŠããšãã¥ã¬ãŒãããããã«ãã®ãããªããã€ã¹ãå®è¡ãããšããšãã¥ã¬ãŒããããããã€ã¹äžã®ã¢ããªã±ãŒã·ã§ã³ã®ãªã¹ãã§ã
ã¢ã¯ã»ãµãªãšãã¥ã¬ãŒã¿ãèŠã€ããããšãã§ã
ãŸã
ããã¯å¿
èŠãªæèšããšãã¥ã¬ãŒãããŸãïŒäžèšã®ããã«ã ãã§ã¯ãããŸããïŒã

ãããžã§ã¯ãèšç»
ããŠãä»ãæ£ç¢ºã«äœãéçºããã®ã§ããããïŒ ããããçš®é¡ã®
æšæ¶ãããã®ã¯éå±ã ãšæãã®ã§ããã¬ãŒã€ãŒãå¶åŸ¡ããã¢ããªã±ãŒã·ã§ã³ãäœæããŸãããã é»è©±ã®ãã¬ãŒã€ãŒã ããã¯ã¢ã¯ã·ã§ã³ã®é©åãªã¹ã±ãŒã«ã§ãã ;ïŒ
- ã¢ããªã±ãŒã·ã§ã³ã¯ããžã§ã¹ãã£ãŒãšã¯ãªãã¯ã§å¶åŸ¡ãããŸãã å³ããå·Šããã³åŸããžã®ãžã§ã¹ãã£ãŒã¯æ¬¡/åã®ãã©ãã¯ã§ãäž/äžã¯ãã倧ãã/ããéãã§ãã äžå€®ãã¯ãªãã¯ããŸã-åçãäžæåæ¢/ç¶è¡ããŸãã
- ã¢ããªã±ãŒã·ã§ã³ç»é¢èªäœã«å ããŠããŠã£ãžã§ããïŒæèšçšïŒãå®è£
ããŸãããã®ãŠã£ãžã§ãããã¯ãªãã¯ãããšãã¡ã€ã³ããã°ã©ã ãŠã£ã³ããŠã衚瀺ãããŸãã
- ã¢ããªã±ãŒã·ã§ã³èšå®ç»é¢ã®ç©ºçœãäœæããŸããã-äºåãšããŠã
- SmartWatchã®äž¡æ¹ã®ããŒãžã§ã³ããµããŒãããå¿
èŠããããŸãïŒCapã瀺ãããã«ãæåãš2çªç®ïŒã
ã©ã€ãã©ãªãIntelliJ IDEAã®ãããžã§ã¯ãã«æ¥ç¶ããŸã
ç§ã¯
IntelliJ IDEAã䜿çšããŠããã®ã§ããã®äŸã
玹ä»ã§ããŸãã ãŸãããããžã§ã¯ããäœæããŸããSDKã®ããŒãžã§ã³ãšããŠãSonyãããªãã·ã§ã³ãéžæããŸãã

ããã«ãäœæ¥ã®ããã«ãåã
ãµã³ãã«ãã©ã«ããŒã®ããã€ãã®ã¢ãžã¥ãŒã«ãç¹ã«
SmartExtensions / SmartExtensionAPIããã³
SmartExtensions / SmartExtensionUtilsããããžã§ã¯ãã«æ¥ç¶ã
ãŸã ã 第äºã«ãçè«çã«ã¯ããã¹ãŠã®ã³ã³ãã³ããæåããæ¥ç¶ããŠæžã蟌ãããšã¯ã§ããŸããããç§ãã¡ã¯åã®æé»é¢ã䟡å€å¹çãå©äŸ¿æ§ããããŠãŒãããæžããããšãã顿ã¯ãã§ã«ç§ãã¡ã«ãšã£ãŠç°è³ªã§ãã ãã¹ãŠãç°¡åã§ãããããã¹ãã€ã©ãŒã®äžã®æ¥ç¶èªäœã®æç€ºãåé€ããŸããã
ã©ã€ãã©ãªãæ¥ç¶ããŸãã[ãã¡ã€ã«]-> [ãããžã§ã¯ãæ§é ]ã«ç§»åãã[
ã¢ãžã¥ãŒã« ]ã¿ãã§[ãã©ã¹èšå·]ãã¯ãªãã¯ããŠã[
ã¢ãžã¥ãŒã«ã®ã€ã³ããŒã]ãéžæããŸãã
SmartExtensionAPIãã©ã«ããŒãèŠã€ããŸãã

OKãã¯ãªãã¯ããæ¬¡ãž->次ãž->次ãžãæåŸãŸã§ãå€ãè¯ãæä»£ã®ããã«ã
次ã«ã远å ããã¢ãžã¥ãŒã«ãã¡ã€ã³ãããžã§ã¯ãã«æ¥ç¶ããŸãã


åãæ¹æ³ã§
SmartExtensionUtilsãæ¥ç¶ã
ãŸã ã
åºæ¬ã¯ã©ã¹ãšãã©ã¡ãŒã¿ãŒãæ§æããŸã
ãããã§ã¹ãããå§ããŸãããã
AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.smartwatch_habra_demo"> <uses-sdk android:minSdkVersion="9" android:targetSdkVersion="16"/> <uses-permission android:name="com.sonyericsson.extras.liveware.aef.EXTENSION_PERMISSION" /> <application android:label="- " android:icon="@drawable/icon"> <activity android:name="DemoConfigActivity" android:label=" " > <intent-filter> <action android:name="android.intent.action.MAIN" /> </intent-filter> </activity> <service android:name="DemoReceiverService" /> <receiver android:name="DemoExtensionReceiver" android:permission="com.sonyericsson.extras.liveware.aef.HOSTAPP_PERMISSION" > <intent-filter> <action android:name="com.sonyericsson.extras.liveware.aef.registration.EXTENSION_REGISTER_REQUEST" /> <action android:name="com.sonyericsson.extras.liveware.aef.registration.ACCESSORY_CONNECTION" /> <action android:name="android.intent.action.LOCALE_CHANGED" /> <action android:name="com.sonyericsson.extras.liveware.aef.notification.VIEW_EVENT_DETAIL" /> <action android:name="com.sonyericsson.extras.liveware.aef.notification.REFRESH_REQUEST" /> <action android:name="com.sonyericsson.extras.aef.widget.START_REFRESH_IMAGE_REQUEST" /> <action android:name="com.sonyericsson.extras.aef.widget.STOP_REFRESH_IMAGE_REQUEST" /> <action android:name="com.sonyericsson.extras.aef.widget.ONTOUCH" /> <action android:name="com.sonyericsson.extras.liveware.extension.util.widget.scheduled.refresh" /> <action android:name="com.sonyericsson.extras.aef.control.START" /> <action android:name="com.sonyericsson.extras.aef.control.STOP" /> <action android:name="com.sonyericsson.extras.aef.control.PAUSE" /> <action android:name="com.sonyericsson.extras.aef.control.RESUME" /> <action android:name="com.sonyericsson.extras.aef.control.ERROR" /> <action android:name="com.sonyericsson.extras.aef.control.KEY_EVENT" /> <action android:name="com.sonyericsson.extras.aef.control.TOUCH_EVENT" /> <action android:name="com.sonyericsson.extras.aef.control.SWIPE_EVENT" /> <action android:name="com.sonyericsson.extras.aef.control.OBJECT_CLICK_EVENT" /> <action android:name="com.sonyericsson.extras.aef.control.MENU_ITEM_SELECTED" /> </intent-filter> </receiver> </application> </manifest>
äœãèµ·ãã£ãŠãããã®æ¬è³ªã¯ããã§ãïŒã¢ããªã±ãŒã·ã§ã³ãããã¯ããã¯ããã€ãã³ããåãåããããããåŠçãµãŒãã¹ã«æž¡ãã¯ã©ã¹ãäœæããŸããããã«ãããæå³ã®ããã¢ã¯ã·ã§ã³ãçæãããŸãã èšå®ãŠã£ã³ããŠã«å¿
èŠãªå¯äžã®
ã¢ã¯ãã£ããã£ã§ããå¿
èŠãªãå Žåã¯ãå®å
šã«ç Žæ£ã§ããŸãã
ã¬ã·ãŒããŒã¯ã©ã¹ã¯éåžžã«åçŽã§ãã
DemoExtensionReceiver.java public class DemoExtensionReceiver extends BroadcastReceiver { @Override public void onReceive(final Context context, final Intent intent) { intent.setClass(context, DemoReceiverService.class); context.startService(intent); } }
ããã§ã¯ããµãŒãã¹èªäœã«ç§»ããŸãããã
DemoReceiverService.java public class DemoReceiverService extends ExtensionService { public static final String EXTENSION_KEY = "com.smartwatch_habra_demo";
楜芳çã§ãããïŒ ããŒãã€ã³ãã¯ã³ã¡ã³ãã§èª¬æãããŠããŸããã質åã¯çºçããªãããã§ãã æèšã®ã¡ã€ã³ã¢ããªã±ãŒã·ã§ã³ã§ãã
WidgetExtensionãåŠçããŠæç»ããã«ã¯ã
ControlExtensionãå¿
èŠã§ããããã¯åãç®çã§ããããŠã£ãžã§ããã®å Žåã§ãã
ãã ãã
RegistrationInformationã¯ãããã°æèšç®¡çããã°ã©ã ã«æ¡åŒµæ©èœãç»é²ããããã®æ
å ±ã§ãã
DemoRegistrationInformation.java public class DemoRegistrationInformation extends RegistrationInformation { public static final int WIDGET_WIDTH_SMARTWATCH = 128; public static final int WIDGET_HEIGHT_SMARTWATCH = 110; public static final int CONTROL_WIDTH_SMARTWATCH = 128; public static final int CONTROL_HEIGHT_SMARTWATCH = 128; public static final int CONTROL_WIDTH_SMARTWATCH_2 = 220; public static final int CONTROL_HEIGHT_SMARTWATCH_2 = 176; Context mContext; protected DemoRegistrationInformation(Context context) { if (context == null) { throw new IllegalArgumentException("context == null"); } mContext = context; } @Override public ContentValues getExtensionRegistrationConfiguration() { String iconHostapp = ExtensionUtils.getUriString(mContext, R.drawable.icon); ContentValues values = new ContentValues(); values.put(Registration.ExtensionColumns.CONFIGURATION_ACTIVITY,DemoConfigActivity.class.getName());
è©³çŽ°ã«æ»åšãã䟡å€ããããŸãã å®éãããŠã³ããŒãããSony APIã¯ãå€ãã®Sonyããã€ã¹å
šäœã«å
±éããŠããããããã®ããã€ã¹ãã¹ãŠã§åæã«å®è¡ã§ããã¢ããªã±ãŒã·ã§ã³ïŒæ¡åŒµæ©èœïŒãäœæããããšãèª°ãæ°ã«ããŸããã ãŸãã¯ãéžæãããã®ã®ã¿ã
ãã®ãããã»ã³ãµãŒããŠã£ãžã§ãããªã©ã®ç»é¢ãµã€ãºãšAPIããŒãžã§ã³ãéç¥ããå¿
èŠããããŸãã ãµããŒãããå¿
èŠããããŸãã 以äžãæå®ããå¿
èŠããããŸãã
- ããŸããŸãªã»ã³ãµãŒïŒå é床èšãªã©ïŒã®ãµããŒã-getRequiredSensorApiVersionã ãŸã£ããå¿
èŠãªãã®ã§ãAPIããŒãžã§ã³= 0ã§ãã
- éç¥-ãããã¢ããéç¥ã¡ãã»ãŒãžã ããããå¿
èŠãããŸããã ãããã£ãŠã getRequiredNotificationApiVersionã§åã³0ã«ãªããŸãã
- ãã³ã³ãããŒã©ãŒããšã¯ããæèšã®éåžžã®ããã°ã©ã ãŠã£ã³ããŠãã§ãã 圌ã®ããã«ãããŒãžã§ã³ã決å®ããå¿
èŠããããŸãã ããã«ããµããŒããããŠããæåã®1æéãš2æéã®ç»é¢ãµã€ãºã瀺ãå¿
èŠããããä»ã®ããã€ã¹ã¯å¿
èŠãããŸããã ãããã£ãŠã以äžãéä¿¡ããŸãã
- getRequiredControlApiVersion-ããŒãžã§ã³1ïŒæèšã®æåã®ããŒãžã§ã³ããµããŒãããããïŒã 2ãéä¿¡ããå ŽåãSmartwatch 2ã®ã¿ããµããŒããããæåã®ãŠã©ããã¯éå§ãããŸããã
- getTargetControlApiVersion -APIã®ã¿ãŒã²ããããŒãžã§ã³ãããã§ã¯Smartwatch 2ã®ãµããŒããå床æäŸããŸã2
- isDisplaySizeSupported-ããã€ã¹ã®ç»é¢ãµã€ãºãååŸããããã€ã¹äžã§å®è¡ãããã©ãããæ±ºå®ããŸãã
- ããŠã£ãžã§ãããã¯ããŠã£ãžã§ãããªã¹ãå
ã®ç»åã§ãã åæ§ã«ãå¿
èŠãªããŒãžã§ã³ãšç»é¢ãµã€ãºãæå®ããå¿
èŠããããŸãã éèŠãªãã€ã³ãïŒã¯ããã¯ã®2çªç®ã®ããŒãžã§ã³ã¯ãŠã£ãžã§ããããµããŒãããŠããŸããã ããã
ããã«ã
getExtensionRegistrationConfigurationã®äžé£ã®ãã©ã¡ãŒã¿ãŒããããŸãããã³ã¡ã³ãããã¯ãã¹ãŠãæç¢ºã§ãã
ã¡ã€ã³ããã°ã©ã ãŠã£ã³ããŠ
次ã®ç¹ãçè§£ããããšãéèŠã§ãã æèšã®æåã®ããŒãžã§ã³ã§ã®ã¿ãæèšã«ç»åãéä¿¡ã§ããŸãã åç ããã ãã§ã ãã以äžã ä»ã®æ¹æ³ã§æãããšã¯ã§ããŸããã 2çªç®ã®ããŒãžã§ã³ã§ã¯ãé«åºŠãªã³ã³ãããŒã©ãŒãç»å ŽããŸããããæåã¯äž¡æ¹ã®ããŒãžã§ã³ããµããŒãããããã«èšè¿°ããŠãããããã€ã¡ãŒãžã®ã¿ã§ãã
ã³ã³ããŒãã³ãã®ã¬ã³ããªã³ã°ãªã©ãã¬ã³ããªã³ã°ã«
ã¬ã€ã¢ãŠãæ©èœã䜿çšããå Žå-åé¡ãããŸããããã¯ãªãã¯ã®åº§æšããã³ãã®ä»ã®çžäºäœçšã¯æåã§åŠçããå¿
èŠããããŸãã æãèŠéã...ããããããã«ããããããã ããã¯ç§ãã¡ã®åçãã©ã®ããã«èŠãããã§ãïŒ

ãããŠããã¹ãŠã«çããã³ãŒãã¯æ¬¡ã®ãšããã§ãã
DemoControl.java public class DemoControl extends ControlExtension { static final Rect buttonStopPlaySmartWatch = new Rect(43, 42, 85, 88); public DemoControl(Context context, String hostAppPackageName) { super(context, hostAppPackageName); } @Override public void onTouch(final ControlTouchEvent event) {
onSwipeãš
onTouchã®ã€ãã³ãã®ç®çã¯ãããã°ã©ã ã衚瀺ããããã³ã«
onResumeãåŒã³åºãããããšã§ããããšãã°ãã¯ããã¯ãäŒæ¢ç¶æ
ããå€ããããã¢ããªã±ãŒã·ã§ã³ã¢ã€ã³ã³ãéžæããããããŸãã ååãšããŠãããã¯ã¢ããªã±ãŒã·ã§ã³ãšã®ã»ãšãã©ã®å¯Ÿè©±ã«ååã§ãã
MusicBackgroundControlWrapperã¯ããã«ãã¡ãã£ã¢ããŒã®ããŒã¹ãããŒã¯ã®ãšãã¥ã¬ãŒã·ã§ã³ã䜿çšããŠãã¬ãŒã€ãŒãå¶åŸ¡ããããã«èšèšãããå°ããªèªå·±èšè¿°åã¯ã©ã¹ã§ãã ãã¹ãŠã®ãã¬ãŒã€ãŒãšæºåž¯é»è©±ã§æ£åžžã«æ©èœããããã§ã¯ãããŸããããæ©èœããå Žåã¯å€§äžå€«ã§ãã æåã®æ¹æ³ãç¥ã£ãŠããå ŽåïŒAndroid 2.3以éããµããŒãããŠããïŒïŒ-ã³ã¡ã³ãã§å
±æããŠãã ããã
MusicBackgroundControlWrapper.java public class MusicBackgroundControlWrapper { public static void KeyPressDownAndUp(int key,Context context){ long eventtime = SystemClock.uptimeMillis() - 1; Intent downIntent = new Intent(Intent.ACTION_MEDIA_BUTTON, null); KeyEvent downEvent = new KeyEvent(eventtime, eventtime, KeyEvent.ACTION_DOWN, key, 0); downIntent.putExtra(Intent.EXTRA_KEY_EVENT, downEvent); context.sendOrderedBroadcast(downIntent, null); eventtime++; Intent upIntent = new Intent(Intent.ACTION_MEDIA_BUTTON, null); KeyEvent upEvent = new KeyEvent(eventtime, eventtime, KeyEvent.ACTION_UP, key, 0); upIntent.putExtra(Intent.EXTRA_KEY_EVENT, upEvent); context.sendOrderedBroadcast(upIntent, null); } public static void VolumeUp(Context context){ AudioManager audioManager =(AudioManager)context.getSystemService(Context.AUDIO_SERVICE); int max=audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC); int current=audioManager.getStreamVolume(AudioManager.STREAM_MUSIC); if (current<max){ current++; } audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, current,0); } public static void VolumeDown(Context context){ AudioManager audioManager =(AudioManager)context.getSystemService(Context.AUDIO_SERVICE); int current=audioManager.getStreamVolume(AudioManager.STREAM_MUSIC); if (current>0){ current--; } audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, current,0); } public static void TogglePausePlay(Context context){ KeyPressDownAndUp(KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE,context); } public static void Next(Context context){ KeyPressDownAndUp(KeyEvent.KEYCODE_MEDIA_NEXT, context); } public static void Prev(Context context){ KeyPressDownAndUp(KeyEvent.KEYCODE_MEDIA_PREVIOUS, context); } }
æèšã®2çªç®ã®ããŒãžã§ã³ããµããŒãããããã«ãããã€ãã®å€æŽãå ããŠ
DemoControlãã
DemoControl2ãç¶æ¿ããå¥ã®ç»åãonResumeïŒïŒã«è»¢éããonTouchã§ä»ã®åº§æšã確èªããŸãã
DemoControl2.java public class DemoControl2 extends DemoControl { static final Rect buttonStopPlaySmartWatch2 = new Rect(59, 52, 167, 122); public DemoControl2(Context context, String hostAppPackageName) { super(context, hostAppPackageName); } @Override public void onTouch(final ControlTouchEvent event) {
ãŠã£ãžã§ãã
ãŠã£ãžã§ããã æ£èŠã®ãŠã£ãžã§ããã¯ãæèšã®æåã®ããŒãžã§ã³ã§
92x92ãã¯ã»ã«ã®è§£å床ã
æã¡ ãååãšããŠ2çªç®ã®ããŒãžã§ã³ã§ã¯ãµããŒããããŠããŸããã ãããããé«ãè§£å床ïŒ
128x110ãŸã§ ïŒã«
åŒã䌞ã°ãããšã¯ã§ããŸãããã¹ã¿ã€ã«ã
倱ãããæšæºã®ã³ã³ãããŒã«ãšãã£ã¹ãã¬ã€ãéããŸãã
å¿
èŠãªã¢ã¯ã·ã§ã³ã¯1ã€ã ãã§ããã¯ãªãã¯ããããšã§ãã¡ã€ã³ã¢ããªã±ãŒã·ã§ã³ãã¯ããã¯ã§èµ·åããŸãã ãããæ
åœããã¯ã©ã¹ãéåžžã«ã·ã³ãã«ã§ããã¹ãŠã®è©³çްã¯ã³ã¡ã³ãã«èšèŒãããŠããŸãã
DemoWidget.java public class DemoWidget extends WidgetExtension { public DemoWidget(Context context, String hostAppPackageName) { super(context, hostAppPackageName); } @Override public void onStartRefresh() {
è峿·±ãç¹ããããŸããã APIã«å«ãŸãããŠãŒãã£ãªãã£ã®äžã«ã¯ã
ã¬ã€ã¢ãŠããåå¥ã«ç»åã«ã¬ã³ããªã³ã°ãããŠã£ãžã§ããå°çšã®ã¯ã©ã¹ããããŸãã æè²ç®çã®ããã ãã«ããã®æ©äŒãå©çšããªãã®ã¯çœªã§ãã
DemoWidgetImageã¯ã©ã¹ã䜿çšããŠã¬ã³ããªã³ã°ããŸãã
DemoWidgetImage.java public class DemoWidgetImage extends SmartWatchWidgetImage { public DemoWidgetImage(Context context) { super(context); setInnerLayoutResourceId(R.layout.music_widget_image); } @Override protected void applyInnerLayout(LinearLayout innerLayout) {
èšå®ãŠã£ã³ããŠ
ããŠãããã§æäœéå¿
èŠã§ãã
DemoRegistrationInformationã¯ã©ã¹ã«
ã¢ã¯ãã£ããã£ã®ååããã§ã«ç»é²ããŠããã®ã§ãä»åºŠã¯å°ãªããšãäœããããŸãå
¥åããã ãã§ãã ç§ãã³ã¡ã³ãããŸããã ãã ã®ã³ãŒãã
DemoConfigActivity.java public class DemoConfigActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.config); } }
config.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" android:text=" " android:id="@+id/textView" android:layout_gravity="center_horizontal"/> </LinearLayout>
Google Playã§ã¢ããªã±ãŒã·ã§ã³ãå
¬éããæ¹æ³
ã¢ããªã±ãŒã·ã§ã³ãã¢ããªã±ãŒã·ã§ã³ã¹ãã¢ã®æèšç®¡çãŠãŒãã£ãªãã£ã«ããã«ã¯ãGoogle Playã®ããã°ã©ã ã®èª¬æããã¹ãã«è¿œå ããå¿
èŠããããŸãã
- SmartWatchããµããŒãããã«ã¯-ãSmartWatchã®LiveWareæ¡åŒµæ©èœã
- SmartWatch 2ããµããŒãããã«ã¯-ãSmartWatch 2ã®Smart Connectæ¡åŒµæ©èœã
- äž¡æ¹ãå¿
èŠãªå Žåãããã«å¿ããŠäž¡æ¹ã®è¡ã远å ããŸãã
éåžžãæèšãæã£ãŠããªã人ã§ãã¢ããªã±ãŒã·ã§ã³ãã€ã³ã¹ããŒã«ã§ããŸãã ã¯ããéå§ããæå°ããŒã¯ãèšå®ããªãã§ãã ããã ããã«æ
£ããŠãã ãããããã¯Google Playã®äžçã§ãïŒ ããããè©äŸ¡ã¯ç§ãã¡ã«ãšã£ãŠéèŠã§ã¯ãããŸãããäžçãå°ãè¯ããªã£ãŠããããšã¯ç§ãã¡ã«ãšã£ãŠéèŠã§ããã...ïŒ
ãµã³ãã«ã¢ããªã±ãŒã·ã§ã³ã§ä»ã«ã§ããããš
- èšå®ãŠã£ã³ããŠïŒãžã§ã¹ãã£ãŒã®å転ãªã©ïŒã
- ãã¬ã€ã€ãŒãå¶åŸ¡ããããã®ããæ£ç¢ºã§æ®éçãªæ¹æ³ã Android 4.4ã§ã¯ãå¿
èŠãªAPIã¯æ¢ã«å®è£
ãããŠããŸãïŒ ãªã¢ãŒãã³ã³ãããŒã©ãŒãåŒã³åºãããããã§ãïŒããå€ãAPIã®å Žåã¯åé¡ã§ãã
- ãã¥ãŒã«ãããªããžã§ã¯ãã®åº§æšã®èªåèšç®ãè¡ããŸãïŒçºæããèŠã€ããŸãïŒã ããªããæ¯åã©ããªæããšã£ãŠããSonyã¯çªç¶ã3çªç®ã®è§£å床ã§3çªç®ã®æèšãäœæããŸãã
ç§ãã¡ã®ä»äºã®çµæ




èšäºã®äŸã®ãœãŒã¹ã³ãŒã
github.com/Newbilius/smartwatch_habra_demoSonyãµã€ãã«çŽé¢ãããœãŒã¹
developer.sonymobile.com/knowledge-base/sony-add-on-sdkç¹°ãè¿ããŸãããæèšã®ä»ã®æ©èœã«ã€ããŠè³ªåãããå Žåã¯ã
examplesãã©ã«ããŒïŒäžèšã®ãã«ãã¹ãåç
§ïŒãåç
§ããŠãã ããã絶察ã«ãã¹ãŠã®ã»ã³ãµãŒãšæ©èœã®äœ¿çšäŸããããŸãã ãã®èšäºã®ç®çã¯ããã¯ã€ãã¯ã¹ã¿ãŒãããšèå³ãæãããæ©äŒãããªãã«äžããããšã§ãã
PSãã®èšäºã§èª¬æãããŠããæ¢è£œã®ã¢ããªã±ãŒã·ã§ã³ãå¿
èŠã§ããããéçºããå¿
èŠããªãå ŽåãGoogle Playã«ã¯æ¢ã«1ã€ãããã«ã¯ããæ©èœçãªãã®ããããŸãããææã®ãã®ããŸã£ããåãã§ã¯ãªãããŸãã¯åæ§ã®æ¬ ç¹ããããŸã
PPS 2çªç®ã®ããŒãžã§ã³ã®æèšã¯æå
ã«ãªãã®ã§ãããã«ã€ããŠæžãããŠããã®ã¯ãäŸãããã¥ã¡ã³ãããã®æ
å ±ã«å ããŠããšãã¥ã¬ãŒã¿ã®ãã§ãã¯ãšãå®éã«ãã§ãã¯ããŠããªã2çªç®ã®ããŒãžã§ã³ã®æèšã ãã§ãã æèšã®æåã®ããŒãžã§ã³ãããããã¹ãŠãæ£ç¢ºã§æ€èšŒãããŠããŸãã