Below code is working for screenpoint and get details from it:-
/** * Performs an identify on layers at the given screenpoint and calls handleIdentifyResults(...) to process them. */ private void identifyResult(android.graphics.Point screenPoint) { final ListenableFuture<List<IdentifyLayerResult>> identifyLayerResultsFuture = map .identifyLayersAsync(screenPoint, 12, false, 10); identifyLayerResultsFuture.addDoneListener(() -> { try { List<IdentifyLayerResult> identifyLayerResults = identifyLayerResultsFuture.get(); handleIdentifyResults(identifyLayerResults); } catch (InterruptedException | ExecutionException e) { Log.e("main", "Error identifying results: " + e.getMessage()); } catch (Exception e) { e.printStackTrace(); } }); } /** * Processes identify results into a string which is passed to showAlertDialog(...) * * @param identifyLayerResults a list of identify results generated in identifyResult(). */ private void handleIdentifyResults(List<IdentifyLayerResult> identifyLayerResults) { for (IdentifyLayerResult identifyLayerResult : identifyLayerResults) { geoElementsCountFromResult(identifyLayerResult); } } /** * Gets a count of the GeoElements in the passed result layer * * @param result from a single layer. * @return the total count of GeoElements. */ private void geoElementsCountFromResult(IdentifyLayerResult result) { List<IdentifyLayerResult> tempResults = new ArrayList<>(); tempResults.add(result); int index = 0; IdentifyLayerResult identifyResult = tempResults.get(index); if (identifyResult.getSublayerResults().size() > 0) { String siteName = Objects.requireNonNull(identifyResult.getSublayerResults().get(index).getElements().get(index).getAttributes().get("SiteName")).toString(); String siteCode = Objects.requireNonNull(identifyResult.getSublayerResults().get(index).getElements().get(index).getAttributes().get("SiteCode")).toString(); getMarkerPopUp(siteName, siteCode); } } In case of getting all data from sublayers of map, i am getting jsonEbeddedExcpetion.