diff --git a/core/java/android/net/NetworkCapabilities.java b/core/java/android/net/NetworkCapabilities.java
index adbb185..0bb2632 100644
--- a/core/java/android/net/NetworkCapabilities.java
+++ b/core/java/android/net/NetworkCapabilities.java
@@ -84,6 +84,13 @@
     public Collection<Integer> getNetworkCapabilities() {
         return enumerateBits(mNetworkCapabilities);
     }
+    public boolean hasCapability(int networkCapability) {
+        if (networkCapability < MIN_NET_CAPABILITY ||
+                networkCapability > MAX_NET_CAPABILITY) {
+            return false;
+        }
+        return ((mNetworkCapabilities & (1 << networkCapability)) != 0);
+    }
 
     private Collection<Integer> enumerateBits(long val) {
         ArrayList<Integer> result = new ArrayList<Integer>();
@@ -142,6 +149,12 @@
     public Collection<Integer> getTransportTypes() {
         return enumerateBits(mTransportTypes);
     }
+    public boolean hasTransport(int transportType) {
+        if (transportType < MIN_TRANSPORT || transportType > MAX_TRANSPORT) {
+            return false;
+        }
+        return ((mTransportTypes & (1 << transportType)) != 0);
+    }
 
     private void combineTransportTypes(NetworkCapabilities nc) {
         this.mTransportTypes |= nc.mTransportTypes;
@@ -205,7 +218,8 @@
      * {@hide}
      */
     public boolean satisfiedByNetworkCapabilities(NetworkCapabilities nc) {
-        return (satisfiedByNetCapabilities(nc) &&
+        return (nc != null &&
+                satisfiedByNetCapabilities(nc) &&
                 satisfiedByTransportTypes(nc) &&
                 satisfiedByLinkBandwidths(nc));
     }
