2016-04-14 10 views
1

時計の接続性について質問したいと思います。時計接続フレームワークを使用したiPhoneからiWatchへのデータ転送

1)iWatchアプリが開かiPhoneからデータを読み取ることが可能です。私はiWatchにデータを転送するためにiPhoneアプリを開くのを待っていません。

2)には、ログイン画面を作成することは可能です(

3)iWatchは、デバイストークンとベンダーIDを持つiWatch上のテキストフィールドからのユーザー入力)を取得しますか?これらの情報をiWatchから入手するには?

4)は、それが可能iWatchアプリにiPhoneアプリから辞書を転送する方法iWatchアプリケーション

5)からiPhoneアプリ上でSQLライトデシベル)のようなiPhoneアプリのデータベースを(読むことです。サンプルPLZを共有します。

+0

あなたの投稿を1つの質問に限定して、質問している内容がトピック外でないことを確認してください。詳細は[ask]を参照してください。ありがとう! –

答えて

2

1)iWatchアプリが開かiPhoneからデータを読み取ることが可能です。私はiWatchにデータを転送するためにiPhoneアプリを開くのを待っていません。

YES、背景方法(transferUserInfo:transferCurrentComplicationUserInfo:transferFile:updateApplicationContext:infoToSend)のいずれかを使用して、あなたがiPhoneアプリに目覚めることができ、物事を成し遂げるには。その逆もできません。ウォッチアプリを開く必要があります。

2)それはiWatch

上(テキストフィールドからのユーザー入力を取得する)ログイン画面を作成することが可能ですNO、テキストフィールドがWatchOS2では使用できません。

3)iWatchは、デバイストークンとベンダIDを有しますか?どのようにiWatchからこれらの情報を取得するには? watchOS 1、ベンダーIDおよび広告IDで

自体はiPhone上で実行WatchKit拡張としてiPhone上で実際にしました。

はwatchOS 2を使用すると、ウォッチへiPhoneからベンダーIDと広告IDを同期して、そこにそれを使用する必要があります。 また、ベンダーIDと広告IDを最新の状態に保つ必要があります。

4)iWatchアプリケーションから

をiPhoneアプリでのSQL LiteのデシベルのようなiPhoneアプリのデータベースを()読みすることも可能です。これはWatchKitに可能であったが、WatchConnectivity Frameworkのアプリケーション・グループに基づく一般的なコンテナの導入であり私はUserDefualtsは確信していますが、まだファイルをテストしていません。 iWatchアプリにiPhoneアプリから辞書を転送する方法

5)。サンプルPLZを共有します。

これらの事を実行する2つの方法があります:ウォッチが非アクティブで、iPhoneはその時に3辞書を送信する場合、ウォッチは意味辞書毎回、受け取ることになります。この方法ではTransferUserInfo

を使用して

は、ウォッチがアクティブになるたびに、ウォッチ側の複数の代理メソッド - - (void)session:(WCSession *)session didReceiveUserInfo:(NSDictionary<NSString *, id> *)userInfoの呼び出しによって3つの辞書がすべて受信されます。エラー:updateApplicationContext使用

-(void)sendDictionaryToWatch:(NSDictionary*)infoToSend{ 
     if([WCSession isSupported]){ 
      WCSession *aDefaultSession   = [WCSession defaultSession]; 
      aDefaultSession.delegate = self; 
      if([aDefaultSession isPaired] && [aDefaultSession isWatchAppInstalled]){ 
       [aDefaultSession activateSession]; 
       [aDefaultSession transferUserInfo:infoToSend]; 
      } 
     } 
    } 

この場合

を、デバイスが活性化に見るための最新のコンテキストを送信します。つまり、3つの情報を連続して送った場合、Watchがアクティブ化されている場合は、代理メソッド--(void)session:(WCSession *)session didReceiveApplicationContext:(nonnull NSDictionary<NSString *,id> *)applicationContextの直前のものではなく最新のもののみを受け取ります。

-(void)sendDictionaryToWatch:(NSDictionary*)infoToSend{ 
    if([WCSession isSupported]){ 
     WCSession *aDefaultSession   = [WCSession defaultSession]; 
     aDefaultSession.delegate = self; 
     if([aDefaultSession isPaired] && [aDefaultSession isWatchAppInstalled]){ 
      [aDefaultSession activateSession]; 
      [aDefaultSession updateApplicationContext:infoToSend error:nil]; 
     } 
    } 
} 
+0

回答ありがとうございます。 @Mrug私の最初の質問では、私はupdateApplicationContextメソッドを使用し、ウォッチ側で辞書を取得するが、これを行うには私は(オープン)iPhoneアプリをまず目を覚ます必要があります。私は目を覚ます(開いた)iPhoneアプリなしでiPhoneアプリからiWatchにデータを取得したい。出来ますか?私の3番目の質問は、 "同期"で何を伝えたいですか? iWatch側でベンダーIDとデバイストークンを取得するためのサンプルコードを提供できますか? – oakt

+0

@oaktuna:いいえ。 iPhoneを開く必要はありません。あなたのアプリはバックグラウンドでのみ起動します。ウォッチの場合、私はアプリを開くために必須と言った。 同期に関しては、デバイスからベンダーIDを転送する独自のロジックを意味します。私が説明した転送方法のいずれかを使用することができます。 私は何のためにdownvoteを知っているかもしれませんか? – Mrug

関連する問題