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()的代码是什么样的?确保始终使用相同的意图(包括相同的请求代码,但额外功能可能不同)。重新启动也应该清除所有内容,尝试一下,看看是否再次出现错误。 –