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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 public class DigitalWatchFaceCompanionConfigActivity extends Activity implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener, ResultCallback<DataApi.DataItemResult> {
Le manifest :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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
Partager