2016-10-26 2 views
0

私は時計用の複雑なサポートを実装しようとしています。ここに私のAndroidManifestがあります。ウォッチフェイスコンプリューションチューザーが表示されませんでした

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
      package="com.example.wearapp"> 

    <uses-feature android:name="android.hardware.type.watch"/> 
    <uses-permission android:name="android.permission.WAKE_LOCK"/> 
    <uses-permission android:name="com.google.android.wearable.permission.RECEIVE_COMPLICATION_DATA"/> 

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@android:style/Theme.DeviceDefault"> 

     <!-- Watch Face --> 

     <service 
      android:name=".ComplicationSimpleWatchFaceService" 
      android:enabled="true" 
      android:label="Fancy Watch" 
      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_complication_simple"/> 
      <meta-data 
       android:name="com.google.android.wearable.watchface.preview_circular" 
       android:resource="@drawable/preview_complication_simple"/> 
      <meta-data 
       android:name="com.google.android.wearable.watchface.wearableConfigurationAction" 
       android:value="com.example.wearapp.CONFIG_COMPLICATION_SIMPLE"/> 

      <intent-filter> 
       <action android:name="android.service.wallpaper.WallpaperService"/> 

       <category android:name="com.google.android.wearable.watchface.category.WATCH_FACE"/> 
      </intent-filter> 
     </service> 

     <activity android:name="android.support.wearable.complications.ComplicationHelperActivity"/> 
     <activity 
      android:name=".ComplicationSimpleConfigActivity" 
      android:label="Fancy Watch"> 
      <intent-filter> 
       <action android:name="com.example.wearapp.CONFIG_COMPLICATION_SIMPLE"/> 

       <category android:name="com.google.android.wearable.watchface.category.WEARABLE_CONFIGURATION"/> 
       <category android:name="android.intent.category.DEFAULT"/> 
      </intent-filter> 
     </activity> 

    </application> 

</manifest> 

私は時計面サービスと設定作業を行っています。私がConfig ActivityからcreateProviderChooserHelperIntentにComplicationHelperActivityを使用すると、私は常にonActivityResultで結果をキャンセルします。ここで私はチューの活動を開始し、その結果

@Override 
     public void onClick(WearableListView.ViewHolder viewHolder) { 
      if (Log.isLoggable(TAG, Log.DEBUG)) { 
       Log.d(TAG, "onClick()"); 
      } 

      Integer tag = (Integer) viewHolder.itemView.getTag(); 
      ComplicationItem complicationItem = mAdapter.getItem(tag); 

      startActivityForResult(ComplicationHelperActivity.createProviderChooserHelperIntent(
          getApplicationContext(), 
          complicationItem.watchFace, 
          complicationItem.complicationId, 
          complicationItem.supportedTypes), 
        PROVIDER_CHOOSER_REQUEST_CODE); 
     } 


     @Override 
     protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
      if (requestCode == PROVIDER_CHOOSER_REQUEST_CODE 
        && resultCode == RESULT_OK) { 
       ComplicationProviderInfo complicationProviderInfo = 
        data.getParcelableExtra(ProviderChooserIntent.EXTRA_PROVIDER_INFO); 
       Log.d(TAG, "Selected Provider: " + complicationProviderInfo); 
       finish(); 
      } 
     } 

私は合併症のサポートが欠けてるように思えおよび任意のプロバイダを選択することができない理由ですのために聞く方法です。しかし、これをテストするためにWatchFaceサンプルからComplicationSimpleWatchFaceServiceをコピーしましたが、結果はまだありません。ウォッチフェイスの複雑なコードは次のとおりです。

private static final int LEFT_DIAL_COMPLICATION = 0; 
    private static final int RIGHT_DIAL_COMPLICATION = 1; 

    public static final int[] COMPLICATION_IDS = {LEFT_DIAL_COMPLICATION, RIGHT_DIAL_COMPLICATION}; 

    public static final int[][] COMPLICATION_SUPPORTED_TYPES = { 
      {ComplicationData.TYPE_SHORT_TEXT}, 
      {ComplicationData.TYPE_SHORT_TEXT} 
    }; 


    private void initializeComplication() { 
      if (Log.isLoggable(TAG, Log.DEBUG)) { 
       Log.d(TAG, "initializeComplications()"); 
      } 
      mActiveComplicationDataSparseArray = new SparseArray<>(COMPLICATION_IDS.length); 

      mComplicationPaint = new Paint(); 
      mComplicationPaint.setColor(Color.WHITE); 
      mComplicationPaint.setTextSize(COMPLICATION_TEXT_SIZE); 
      mComplicationPaint.setTypeface(Typeface.create(Typeface.DEFAULT, Typeface.BOLD)); 
      mComplicationPaint.setAntiAlias(true); 

      setActiveComplications(COMPLICATION_IDS); 
     } 

答えて

0

意図を得るために、あなたはComplicationHelperActivity.createProviderChooserHelperIntentメソッドを呼び出していることを確認し、プロバイダチューを開始します。

サンプルコード(それが起動するためgetActivity()メソッドを呼び出してください):

startActivityForResult(
    ComplicationHelperActivity.createProviderChooserHelperIntent(
    getActivity(), 
    watchFace, 
    complicationId, 
    ComplicationData.TYPE_LARGE_IMAGE), 
    PROVIDER_CHOOSER_REQUEST_CODE); 

意図はチューを起動するstartActivityまたはstartActivityForResultのいずれかで使用することができます。

あなたはこのtutorialに続き、あなたには、いくつかの設定を逃したかどうかを確認することができます。

+0

おかげで私の問題はcom.google.android.support:wearable:2.0.0-alpha3の代わりにcom.google.android.support:wearable:2.0.0-alpha2を使用していました – HellCat2405

関連する問題