2016-05-29 17 views
0

Ich arbeite an einem Android-Anwendung in der Nähe, und ich versuche,() zu Nachrichten in der Nähe über die nahe Nachrichten API von Google zu abonnieren, habe ich eine Verbindung mit dem GoogleApiClient aber Beim Abonnieren erhalte ich den Fehler TOO_MANY_PENDING_INTENT.TOO_MANY_PENDING_INTENT Fehler beim Abonnieren von Google in der Nähe Nachrichten API

hier ist mein Code:

private void subscribe() { 
    if (mSubscribed) { 
     Log.i(TAG, "Already subscribed."); 
     return; 
    } 

    SubscribeOptions options = new SubscribeOptions.Builder() 
      .setStrategy(Strategy.BLE_ONLY) 
      .build(); 


    Nearby.Messages.subscribe(mGoogleApiClient, getPendingIntent(), options) 
      .setResultCallback(new ResultCallback<Status>() { 
       @Override 
       public void onResult(@NonNull Status status) { 
        if (status.isSuccess()) { 
         Log.i(TAG, "Subscribed successfully."); 
         startService(getBackgroundSubscribeServiceIntent()); 
        } else { 
         Log.e(TAG, "Operation failed. Error: " + 
           NearbyMessagesStatusCodes.getStatusCodeString(
             status.getStatusCode())); 
        } 
       } 
      }); 
} 

Und mein Manifest:

<uses-feature 
    android:name="android.hardware.bluetooth_le" 
    android:required="true" /> 

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.BLUETOOTH" /> 
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> 
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
<!-- This is required for the scan library. --> 
<uses-permission android:name="android.permission.WAKE_LOCK" /> 

<application 
    android:allowBackup="true" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 

    <meta-data 
     android:name="com.google.android.nearby.messages.API_KEY" 
     android:value="AIzaSyB6hlT5939qLK2HORZoeiHx2vytqKrtFHA" /> 

    <activity android:name=".uid.Main2Activity"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN"/> 

      <category android:name="android.intent.category.LAUNCHER"/> 
     </intent-filter> 
    </activity> 

    <service 
     android:name="org.physical_web.uid.BackgroundSubscribeIntentService" 
     android:exported="false" /> 
... 

Hat bitte jemand eine Vorstellung von diesem Problem? Danke :)

+0

den Code jemals funktioniert immer gesetzt 'mSubscribed' zu wahr? Wenn nicht, wird 'getPendingIntent()' jedes Mal aufgerufen, wenn die 'subscribe() 'Methode aufgerufen wird. – davidgyoung

+0

Ja, in meiner onCreate() Methode: if (savedInstanceState! = Null) mSubscribed = savedInstanceState.getBoolean (KEY_SUBSCRIBED, false); Ich kopiere einfach den Code von der Google Developers-Website. –

+1

Wie sieht der Code für getPendingIntent() aus? Stellen Sie sicher, dass Sie immer die gleiche Absicht verwenden (einschließlich des gleichen Anfragecodes, aber die Extras können unterschiedlich sein). Auch Neustart sollte alles löschen, versuchen Sie es und sehen Sie, wenn Sie den Fehler erneut erhalten. –

Antwort

0

Stellen Sie sicher, dass Ihr Paket Namen, was Sie in Manifest-Datei und build.gradle gegeben haben, sind gleich und gleichen verwendet werden sollte, während die API-Schlüssel