Данные о неожиданных осложнениях (Galaxy Watch 4)

Я создал простое усложнение, которое показывает давление воздуха в единицах ччмг (поскольку по умолчанию используются единицы гПа).

Он отлично работает на Pixel Watch.

Но когда я установил его на Galaxy Watch 4, он не появился в списке осложнений.

Единственное, что я заметил, это сообщение журнала:

      WCS com.google.android.wearable.app W  [PackageChecker]Unexpected complication data type RANGED_TEXT

Это моя запись манифеста:

      <service
    android:name=".C"
    android:exported="true"
    android:icon="@drawable/ic_sun_not"
    android:label="@string/app_name"
    android:permission="com.google.android.wearable.permission.BIND_COMPLICATION_PROVIDER">
    <intent-filter>
        <action android:name="android.support.wearable.complications.ACTION_COMPLICATION_UPDATE_REQUEST"/>
    </intent-filter>
    <meta-data
        android:name="android.support.wearable.complications.SUPPORTED_TYPES"
        android:value="RANGED_TEXT" />
    <meta-data
        android:name="android.support.wearable.complications.UPDATE_PERIOD_SECONDS"
        android:value="3600" />
</service>

И есть код:

      public class C extends ComplicationDataSourceService {

    @Nullable
    @Override
    public ComplicationData getPreviewData(@NonNull ComplicationType complicationType) {
        return data(750);
    }

    private RangedValueComplicationData data(float value) {
        final PlainComplicationText d = new PlainComplicationText.Builder("ммрс").build();
        final Icon icon = Icon.createWithResource(this, R.drawable.ic_sun_not);
        final String str = String.valueOf(Math.round(value));
        final PlainComplicationText text = new PlainComplicationText.Builder(str).build();
        return new RangedValueComplicationData
            .Builder(value, 720, 780, d)
            .setMonochromaticImage(new MonochromaticImage.Builder(icon).build())
            .setTitle(text)
            .build();
    }

    @Override
    public void onComplicationRequest(
            @NonNull ComplicationRequest complicationRequest,
            @NonNull ComplicationRequestListener complicationRequestListener
    ) {
        final L l = new L();
        final SensorManager sensMan = getSystemService(SensorManager.class);
        final Sensor sensor = sensMan.getDefaultSensor(Sensor.TYPE_PRESSURE);
        sensMan.registerListener(l, sensor, SensorManager.SENSOR_DELAY_UI);
        new Timer().schedule(new TimerTask() {
            @Override
            public void run() {
                final float hhmg = l.lastValue * HPA_TO_MMHG;
                try {
                    complicationRequestListener.onComplicationData(data(hhmg));
                } catch (RemoteException e) {
                    throw new RuntimeException(e);
                }
                sensMan.unregisterListener(l);
            }
        }, 300);
    }
}

И (на всякий случай) зависимость в build.gradle:

      implementation("androidx.wear.watchface:watchface-complications-data-source:1.1.1")

0 ответов

Другие вопросы по тегам