Merge "Tethering: add isTetheringSupported with callerPkg parameter"
This commit is contained in:
@@ -47,6 +47,7 @@ package android.net {
|
||||
method @NonNull public String[] getTetheredIfaces();
|
||||
method @NonNull public String[] getTetheringErroredIfaces();
|
||||
method public boolean isTetheringSupported();
|
||||
method public boolean isTetheringSupported(@NonNull String);
|
||||
method @RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE) public void registerTetheringEventCallback(@NonNull java.util.concurrent.Executor, @NonNull android.net.TetheringManager.TetheringEventCallback);
|
||||
method @RequiresPermission(anyOf={"android.permission.TETHER_PRIVILEGED", android.Manifest.permission.WRITE_SETTINGS}) public void requestLatestTetheringEntitlementResult(int, boolean, @NonNull java.util.concurrent.Executor, @NonNull android.net.TetheringManager.OnTetheringEntitlementResultListener);
|
||||
method public void requestLatestTetheringEntitlementResult(int, @NonNull android.os.ResultReceiver, boolean);
|
||||
|
||||
@@ -1131,6 +1131,25 @@ public class TetheringManager {
|
||||
public boolean isTetheringSupported() {
|
||||
final String callerPkg = mContext.getOpPackageName();
|
||||
|
||||
return isTetheringSupported(callerPkg);
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the device allows for tethering. It may be disabled via {@code ro.tether.denied}
|
||||
* system property, Settings.TETHER_SUPPORTED or due to device configuration. This is useful
|
||||
* for system components that query this API on behalf of an app. In particular, Bluetooth
|
||||
* has @UnsupportedAppUsage calls that will let apps turn on bluetooth tethering if they have
|
||||
* the right permissions, but such an app needs to know whether it can (permissions as well
|
||||
* as support from the device) turn on tethering in the first place to show the appropriate UI.
|
||||
*
|
||||
* @param callerPkg The caller package name, if it is not matching the calling uid,
|
||||
* SecurityException would be thrown.
|
||||
* @return a boolean - {@code true} indicating Tethering is supported.
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi(client = MODULE_LIBRARIES)
|
||||
public boolean isTetheringSupported(@NonNull final String callerPkg) {
|
||||
|
||||
final RequestDispatcher dispatcher = new RequestDispatcher();
|
||||
final int ret = dispatcher.waitForResult((connector, listener) -> {
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user