Personnaliser une watchface sur mobile
Bonjour,
J'ai créé une watchface qui fonctionne mais j'aimerais la personnaliser sur mon mobile avec l'application "Android wear". J'ai bien l'image de ma watchface qui apparaît dans cette application mais je n'arrive pas à avoir une icône "paramètre" dessus.
Un screen de ce que je veux : http://postimg.org/image/xhkghl4gh/
j'ai bien suivi le tutoriel de google : https://developer.android.com/traini...iguration.html
Testé plusieurs choses, chercher dans énormément de code mais l'icône n’apparaît toujours pas et je trouve ne pas d'exemple !.
Le code pour cette partie est celui de google pour l'exemple android "Watchface" (le code ici https://github.com/googlesamples/android-WatchFace)
Pour la partie mobile :
Code:
1 2 3
| public class DigitalWatchFaceCompanionConfigActivity extends Activity
implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener,
ResultCallback<DataApi.DataItemResult> { |
Le manifest :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.dev.virlouvet.cadranbarrewatch">
<!-- Permissions required by the wearable app -->
<uses-permission android:name="com.google.android.permission.PROVIDE_BACKGROUND" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<application android:allowBackup="true" android:label="@string/app_name"
android:icon="@drawable/ic_launcher" android:theme="@style/AppTheme">
<activity
android:name=".DigitalWatchFaceCompanionConfigActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="com.dev.virlouvet.cadranbarrewatch.MAIN" />
<category android:name="com.google.android.wearable.watchface.category.COMPANION_CONFIGURATION" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>
</manifest> |
Pour la partie wear :
Code:
1 2 3 4 5 6 7 8
| public class DigitalWatchFaceConfigListenerService extends WearableListenerService
implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener {
public class SweepWatchFaceService extends CanvasWatchFaceService {
public final class DigitalWatchFaceUtil { |
Le manifest :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.dev.virlouvet.cadranbarrewatch" >
<uses-feature android:name="android.hardware.type.watch" />
<!-- Required to act as a custom watch face. -->
<uses-permission android:name="com.google.android.permission.PROVIDE_BACKGROUND" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@android:style/Theme.DeviceDefault" >
<activity
android:name=".MainActivity"
android:allowEmbedded="true"
android:label="@string/app_name" >
<meta-data android:name="com.google.android.clockwork.home.preview" android:resource="@drawable/ic_launcher" />
</activity>
<service
android:name=".SweepWatchFaceService"
android:label="BarreWatchXavier"
android:allowEmbedded="true"
android:taskAffinity=""
android:permission="android.permission.BIND_WALLPAPER" >
<meta-data
android:name="android.service.wallpaper"
android:resource="@xml/watch_face" />
<meta-data
android:name="com.google.android.wearable.watchface.preview"
android:resource="@drawable/preview_analog" />
<meta-data
android:name="com.google.android.clockwork.home.preview_circular"
android:resource="@drawable/preview_analog_circular" />
<meta-data
android:name="com.google.android.wearable.watchface.companionConfigurationAction"
android:value="com.dev.virlouvet.cadranbarrewatch.CONFIG_DIGITAL" />
<intent-filter>
<action android:name="android.service.wallpaper.WallpaperService" />
<category android:name="com.google.android.wearable.watchface.category.WATCH_FACE" />
</intent-filter>
</service>
<service android:name=".DigitalWatchFaceConfigListenerService">
<intent-filter>
<action android:name="com.google.android.gms.wearable.BIND_LISTENER" />
</intent-filter>
</service>
</application>
</manifest> |
C'est peut-être une piste, je vois dans certain code qu'il n'y pas d'activity pour la partie Wear, mais je ne vois pas comment il peuvent lancer l’exécution.
Personnellement je passe par une sous classe.
Code:
1 2 3 4 5 6 7 8
| public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new SweepWatchFaceService().onCreateEngine();
} |
Des idées ?
Cordialement