0
我正在使用附近的Android附近的應用程序,並試圖通過附近的Google消息API訂閱()附近的消息,但我設法連接到了googleApiClient,但是訂閱時,我收到TOO_MANY_PENDING_INTENT錯誤。訂閱Google附近消息時出現TOO_MANY_PENDING_INTENT錯誤API
這裏是我的代碼:
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()));
}
}
});
}
我的清單:
<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" />
...
是否有人有一個想法,這個問題好嗎? 謝謝:)
有過不設置'mSubscribed'的代碼相同,應使用真正?如果沒有,每次調用顯示的'subscribe()'方法時都會調用'getPendingIntent()'。 – davidgyoung
是的,在我的onCreate()方法:if(savedInstanceState!= null)mSubscribed = savedInstanceState.getBoolean(KEY_SUBSCRIBED,false);我只是複製粘貼從谷歌developpers網站的代碼。 –
getPendingIntent()的代碼是什麼樣的?確保始終使用相同的意圖(包括相同的請求代碼,但額外功能可能不同)。重新啓動也應該清除所有內容,嘗試一下,看看是否再次出現錯誤。 –