2017-11-24 6 views
0

アプリケーションの起動時にNotificationsRegistrationHandlerプロシージャが実行されると、このエラーが発生します。ドキュメントとしてjava.lang.IllegalStateException:オブジェクトNotificationsRegistrationHandlerは、OFFLINEのみをサポートしていますが、RemoteApplicationServer経由で呼び出されています

java.lang.IllegalStateException: Object NotificationsRegistrationHandler only supports OFFLINE but is being called via RemoteApplicationServer 

は言う:

あなたは完全にオフラインアプリケーションを持っていて、オフラインで独占的に生成されるように、この登録ハンドラ手続きが必要な場合は、= Falseのコネクティビティサポート財産=オフライン

主なプロパティを設定します

この手順を使用するために、私のメインのSDオブジェクト登録ハンドラプロパティを設定しました。

は私も手続きNotificationsRegistrationHandler上の次のプロパティを設定している:私のコードや設定で間違ってit's何

enter image description here

おかげで、 ロヘリオArosemena

答えて

0

Androidで外部オブジェクトを作成してOne Signal Idを返すことで、別の解決策が見つかりました。コードは次のとおりです。

OneSignal.idsAvailable(new OneSignal.IdsAvailableHandler() { 
@Override 
public void idsAvailable(String userId, String registrationId) { 
try{ 
return userId; 
}catch(Exception e){      
e.printStackTrace(); 
return ""; 
} 
} 
}); 

SDアプリケーションでは、1つの信号のデバイス登録はOKでした。問題は、プロシージャNotificationRegistrationHandlerが決して実行されなかったため(オフラインまたはオンライン)、DeviceTokenをテーブルに格納できないことです。私たちは、このコードでIOSのために同じことを行う必要があります

OSPermissionSubscriptionState status = OneSignal.getPermissionSubscriptionState(); 

status.getSubscriptionStatus().getUserId(); 
0

ロヘリオ、

は、私は、これはオフラインモードの問題であってもよいことだと思います。私たちはそれを調べることができます。

その間、Connectivity Support = Onlineに設定することができます。これにより問題が解決されます。

+0

ゴンサロ、私はオンライン=接続のサポートを変更しますが、この場合には、手続きNotificationsRegistrationHandlerは実行されません。 –

+0

これをAndroid Monitorで確認しました。この手順のログメッセージは出力されません。 –

+0

Rogelioでは、プロシージャはサーバー側で実行されます。これはこの問題の回避策です。ログはAndroid Monitorからは見えません。代わりにサーバー側。 –

関連する問題