如何在没有钥匙的情况下获得临时演员?

时间:2018-07-17 19:33:49

标签: android android-intent android-bundle

众所周知,我们可以使用html, body, #map { height: 100%; width: 100%; margin: 0px; padding: 0px }将多余的信息放入一个Intent中,然后将其传递给另一个应用程序。在目的地,我们可以使用<div id="map"></div> <script> var routeDisplay = new function() { var self = this; // Variables self.directionsService; self.directionsRenderer; self.map; self.origin; self.destination; // Functions self.setup = function() { self.directionsService = new google.maps.DirectionsService(); self.directionsRenderer = new google.maps.DirectionsRenderer({ preserveViewport: true, suppressMarkers: true }); } self.setMap = function(map) { self.map = map; self.directionsRenderer.setMap(map); } self.setPoints = function(origin, destination) { self.origin = origin; self.destination = destination; } self.render = function() { if (self.directionsRenderer.getMap() == null) self.directionsRenderer.setMap(self.map); self.directionsService.route({ origin: self.origin, destination: self.destination, travelMode: 'DRIVING' }, function(response, status) { if (status === 'OK') { self.directionsRenderer.setDirections(response); } else { window.alert('Directions request failed due to ' + status); } }); } self.hide = function() { self.directionsRenderer.setMap(null); } self.show = function() { self.directionsRenderer.setMap(self.map); } self.toggleShow = function() { self.directionsRenderer.map = (self.directionsRenderer.getMap() == null) ? self.map : null; } self.isAlreadyRendered = function(origin, destination) { if (origin == self.origin && destination == self.destination) return true; return false; } } function initMap() { var myLatLng = { lat: 45.5325016, lng: -122.7973512 }; var map = new google.maps.Map(document.getElementById('map'), { zoom: 15, center: myLatLng }); var start = new google.maps.Marker({ position: myLatLng, map: map, label: 'start' }); var end = new google.maps.Marker({ position: { lat: myLatLng.lat - .5, lng: myLatLng.lng - .5 }, map: map, label: 'end' }); // Set up routeDisplay routeDisplay.setup(); routeDisplay.setMap(map); start.addListener('click', function() { var a = start.position; var b = end.position; if (routeDisplay.isAlreadyRendered(a, b)) routeDisplay.toggleShow(); else { routeDisplay.setPoints(a, b); routeDisplay.render(); } }); } </script> <script async defer src="https://maps.googleapis.com/maps/api/js?callback=initMap"> </script>来获取此信息。但是,所有这些方法都需要一个密钥。

我想知道是否有任何方法可以在没有密钥的情况下获取信息。 或者,是否有任何方法可以检查捆绑软件中设置的所有密钥?

谢谢!

1 个答案:

答案 0 :(得分:7)

  

如果没有钥匙就可以获取信息。

否,没有任何键就无法发送数据,无论是Intent.EXTRA还是您定义的键,您都需要使用某种键

  

是否有任何方法可以检查已设置到   捆绑吗?

是的,您可以使用getIntent().getExtras().keySet(),这将为您提供包含所有键的Set(字符串)。

Bundle bundle = getIntent().getExtras();
Set<String> bundleKeySet = bundle.keySet(); // string key set
for(String key : bundleKeySet){ // traverse and print pairs
    Log.i(key," : " + bundle.get(key));
}