Токен android arcgis версии 100.3.0

Ниже приведен код, который я использую для установки учетных данных пользователя в ServiceFeatureTable.

ServiceFeatureTable featureTablePolygons = new ServiceFeatureTable(polygonUrl);
featureTablePolygons.setCredential(UserCredential.createFromToken(gisToken, referer));


    //query feature from the table
    final ListenableFuture<FeatureQueryResult> queryResultPolygons = featureTablePolygons.queryFeaturesAsync(query);
    queryResultPolygons.addDoneListener(() -> {
        try {
            FeatureCollection featureCollection = new FeatureCollection();
            FeatureQueryResult result = queryResultPolygons.get();
            FeatureCollectionTable featureCollectionTable = new FeatureCollectionTable(result);
            featureCollectionTable.setRenderer(new SimpleRenderer(new SimpleFillSymbol(SimpleFillSymbol.Style.SOLID, getResources().getColor(R.color.translucent_red), new SimpleLineSymbol(SimpleLineSymbol.Style.SOLID, Color.RED, 1))));
            featureCollection.getTables().add(featureCollectionTable);
            FeatureCollectionLayer featureCollectionLayer = new FeatureCollectionLayer(featureCollection);
       mMapView.getMap().getOperationalLayers().add(featureCollectionLayer);

            if (result.iterator().hasNext()) {
                Feature feature = result.iterator().next();
                Envelope envelope = feature.getGeometry().getExtent();
                mMapView.setViewpointGeometryAsync(envelope);
            } else {
            }
        } catch (InterruptedException | ExecutionException e) {
            Log.e(TAG, "Error in FeatureQueryResult: " + e.getMessage());
        }
    });

Но это не работает. Если я использую AuthenticationManager, он работает нормально, но я не хочу использовать имя пользователя и пароль в своем коде.

0
0
222
1

Ответы 1

Если вы получаете токен вручную, вы можете создать объект UserCredential с помощью createFromToken () и установить его в ServiceFeatureTable с помощью setCredential ().

Однако многие рабочие процессы для получения токена обрабатываются средой выполнения (например, имя пользователя + пароль или OAuth через портал). Взгляните на Документация AuthenticationManager, чтобы начать.

И, наконец, я думаю, вы получите больше внимания на свои вопросы на Форумы ArcGIS Runtime SDK для Android.

Спасибо за ваш ответ. Я задал этот вопрос на форуме ArcGIS, но никто не ответил.

Manoj 12.11.2018 08:03

Какую ошибку вы получаете? А какой реферер вы используете? Если вы установите реферер на ArcGISRuntimeEnvironment.getUserAgent (), изменит ли это что-нибудь? Я не ожидал, что это произойдет, но я видел, что этот шаблон использовался в другом месте.

Nixta 12.11.2018 18:01

если я использую featureTablePolygons.setCredential (новый UserCredential (имя пользователя, пароль)); тогда он работает нормально, но как только я изменю его на featureTablePolygons.setCredential (UserCredential.createFrom‌ Token (gisToken, referer)); Он вызывает исключение ArcGISRuntimeException: нельзя вызвать этот метод в этом контексте в queryResultPolygons.get ();

Manoj 16.11.2018 06:39

Другие вопросы по теме