2016-08-05 12 views
0

EDIT:既に解決済みですが、ビーコンに問題がありました。付近のメッセージAPIに添付ファイルがありません

Google Nearby Message APIに問題があります。私は彼らのページ(https://developers.google.com/nearby/messages/android/get-beacon-messages)で言われたようにしましたが、ビーコンから添付ファイルを取得しません。

それは、GoogleのAPIクライアントに接続し、それが正常に加入するが、それは onLost onFoundになることはありません。

私は(Find Eddystone Beacons using Nearby Google API)アンドリューBunnerは、この記事で言ってみました、私は(モトローラモトX第一世代とGoogleのGitHubリポジトリ(https://github.com/googlesamples/android-nearby/blob/master/messages/NearbyDevices/app/src/main/java/com/google/android/gms/nearby/messages/samples/nearbydevices/MainActivity.java)を持って、自分のアプリケーションを試してみましたが、それは私のデバイスのいずれかで動作しません。タンゴのタブレット)、スイッチをクリックして近くのデバイスを検出するか、デバイス情報を共有するかをオンにすると、購読に失敗します:「ステータス=ステータス{statusCode = ERROR、resolution = null}」。

私のコードをチェックして比較したところ、その方法は似ていますが、購読してから何らかの理由で添付ファイルが表示されることはありません。 APIキー、マニフェスト、build.gradle、ビーコンダッシュボード、OAuthパネル(実際に添付ファイルがあることを確認)をチェックし、それらが同じプロジェクト(ビーコンやAPI)に属していることを確認しましたが、それでも仕事はありません。 私は、同じ問題を抱えている人もいましたが、答えの中で言われたようにしてみましたが、私は間違ったことをしているように思えます。

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_beacon); 

    if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) 
      == PackageManager.PERMISSION_GRANTED) { 
     mGoogleApiClient = new GoogleApiClient.Builder(this) 
       .addApi(Nearby.MESSAGES_API, new MessagesOptions.Builder() 
         .setPermissions(NearbyPermissions.BLE) 
         .build()) 
       .addConnectionCallbacks(this) 
       .enableAutoManage(this, this) 
       .build(); 
     Log.i(TAG, "API connected"); 
    } 
    mMessageListener = new MessageListener() { 

     @Override 
     public void onFound(Message message) { 
      String messageAsString = new String(message.getContent()); 
      Log.d(TAG, "Found message: " + messageAsString); 
      //When a message is found 
      Log.i(TAG, "Message found: " + message.toString()); 
      Log.i(TAG, "Message string: " + new String(message.getContent())); 
      Log.i(TAG, "Message namespaced type: " + message.getNamespace() + 
        "/" + message.getType()); 
     } 

     @Override 
     public void onLost(Message message) { 
      //When a message is no longer detectable 
      String messageAsString = new String(message.getContent()); 
      Log.d(TAG, "Lost sight of message: " + messageAsString); 
     } 
    }; 

} 
private void subscribe() { 
    Log.i(TAG, "Subscribing."); 
    SubscribeOptions options = new SubscribeOptions.Builder() 
      .setStrategy(Strategy.BLE_ONLY) 
      .setCallback(new SubscribeCallback() { 
       @Override 
       public void onExpired() { 
        super.onExpired(); 
        Log.i(TAG, "No longer subscribing"); 
       } 
      }) 
      .build(); 
    Nearby.Messages.subscribe(mGoogleApiClient, mMessageListener, options) 
      .setResultCallback(new ResultCallback<Status>() { 
       @Override 
       public void onResult(@NonNull Status status) { 
        if (status.isSuccess()){ 
         Log.i(TAG, "Subscibed succesfully"); 
        }else{ 
         Log.i(TAG, "Could not subscribe"); 
        } 
       } 
      }); 

} 
private void unsuscribe(){ 
    Log.i(TAG, "Unsuscribing"); 
    Nearby.Messages.unsubscribe(mGoogleApiClient, mMessageListener); 
} 

@Override 
public void onStart() { 
    super.onStart(); 
    mGoogleApiClient.connect(); 
    Log.i(TAG, "onStart"); 
} 

@Override 
public void onConnected(Bundle connectionHint) { 

    Log.i(TAG, "GoogleApiClient connected"); 
    subscribe(); 
} 

@Override 
public void onConnectionSuspended(int cause) { 
    Log.e(TAG, "GoogleApiClient disconnected with cause: " + cause); 
} 

@Override 
public void onConnectionFailed(ConnectionResult result) { 
    if (result.hasResolution()) { 
     try { 
      result.startResolutionForResult(this, REQUEST_RESOLVE_ERROR); 
     } catch (IntentSender.SendIntentException e) { 
      e.printStackTrace(); 
     } 
    } else { 
     Log.e(TAG, "GoogleApiClient connection failed"); 
    } 
} 

@Override 
public void onStop() { 

    unsuscribe(); 
    if (mGoogleApiClient.isConnected()) { 
     mGoogleApiClient.disconnect(); 
    } 
    super.onStop(); 

} 
@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == REQUEST_RESOLVE_ERROR) { 
     if (resultCode == RESULT_OK) { 
      mGoogleApiClient.connect(); 
     } else { 
      Log.e(TAG, "GoogleApiClient connection failed. Unable to resolve."); 
     } 
    } else { 
     super.onActivityResult(requestCode, resultCode, data); 
    } 
} 
+0

アプリ(ビーコンは検出されない)とNearbyDevicesサンプルアプリ(サブスクライブ不可)の2つの異なる問題のようです。アプリをテストするときにビーコンが近くにあることを実際に知っていますか? Googleの[ビーコンツール](https://play.google.com/store/apps/details?id=com.google.android.apps.location.beacon.beacontools&hl=ja)アプリまたはGoogleの[ビーコンツール]でこれらのビーコンを検出できますか? [ビーコンの検索](https://play.google.com/store/apps/details?id=com.radiusnetworks.locate&hl=ja)アプリですか? – davidgyoung

+0

ねえ、アプリでビーコンを追跡できます。Androidコンソールでビーコンを見ることができます。登録されていれば、Altbeaconライブラリを使用しているというメッセージが表示されます。 Googleのビーコンツールアプリでビーコンを追跡して見ることもできます。 –

+0

[周辺設定]は[設定] - > [Google] - > [Nearby]でオンになっていますか? – davidgyoung

答えて

0

次の詳細ログを有効にして再試行できますか?

$ adbのシェルに、SetProp log.tag.NearbyMessagesは、私はあなたが貼り付けられたあなたのコードで間違っているものを見ることができない

$ adbのシェルに、SetProp log.tag.copresGcore VERBOSE

をVERBOSE、良いようです。

+0

私はあなたが言ったようにしてみましたが、結果として何も得られませんでした。 –

+0

私はいつも同じログを意味します –

+0

私にlogcat情報を送ることはできますか? $ adbシェルlogcat -v時間| tee logcat.txt –

関連する問題