Loading core/api/module-lib-current.txt +20 −0 Original line number Diff line number Diff line Loading @@ -88,6 +88,11 @@ package android.app.usage { package android.bluetooth { public class BluetoothFrameworkInitializer { method public static void registerServiceWrappers(); method public static void setBluetoothServiceManager(@NonNull android.os.BluetoothServiceManager); } public final class BluetoothPan implements android.bluetooth.BluetoothProfile { method @Nullable @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED, android.Manifest.permission.TETHER_PRIVILEGED}) public android.net.TetheringManager.TetheredInterfaceRequest requestTetheredInterface(@NonNull java.util.concurrent.Executor, @NonNull android.net.TetheringManager.TetheredInterfaceCallback); } Loading Loading @@ -382,6 +387,21 @@ package android.os { method public final void markVintfStability(); } public class BluetoothServiceManager { method @NonNull public android.os.BluetoothServiceManager.ServiceRegisterer getBluetoothManagerServiceRegisterer(); } public static class BluetoothServiceManager.ServiceNotFoundException extends java.lang.Exception { ctor public BluetoothServiceManager.ServiceNotFoundException(@NonNull String); } public static final class BluetoothServiceManager.ServiceRegisterer { method @Nullable public android.os.IBinder get(); method @NonNull public android.os.IBinder getOrThrow() throws android.os.BluetoothServiceManager.ServiceNotFoundException; method public void register(@NonNull android.os.IBinder); method @Nullable public android.os.IBinder tryGet(); } public class Build { method public static boolean isDebuggable(); } Loading core/java/android/app/ActivityThread.java +3 −0 Original line number Diff line number Diff line Loading @@ -61,6 +61,7 @@ import android.app.servertransaction.PendingTransactionActions.StopInfo; import android.app.servertransaction.ResumeActivityItem; import android.app.servertransaction.TransactionExecutor; import android.app.servertransaction.TransactionExecutorHelper; import android.bluetooth.BluetoothFrameworkInitializer; import android.compat.annotation.UnsupportedAppUsage; import android.content.AttributionSource; import android.content.AutofillOptions; Loading Loading @@ -109,6 +110,7 @@ import android.net.TrafficStats; import android.net.Uri; import android.os.AsyncTask; import android.os.Binder; import android.os.BluetoothServiceManager; import android.os.Build; import android.os.Bundle; import android.os.CancellationSignal; Loading Loading @@ -7919,6 +7921,7 @@ public final class ActivityThread extends ClientTransactionHandler StatsFrameworkInitializer.setStatsServiceManager(new StatsServiceManager()); MediaFrameworkPlatformInitializer.setMediaServiceManager(new MediaServiceManager()); MediaFrameworkInitializer.setMediaServiceManager(new MediaServiceManager()); BluetoothFrameworkInitializer.setBluetoothServiceManager(new BluetoothServiceManager()); } private void purgePendingResources() { Loading core/java/android/app/SystemServiceRegistry.java +2 −8 Original line number Diff line number Diff line Loading @@ -49,7 +49,7 @@ import android.app.usage.StorageStatsManager; import android.app.usage.UsageStatsManager; import android.apphibernation.AppHibernationManager; import android.appwidget.AppWidgetManager; import android.bluetooth.BluetoothManager; import android.bluetooth.BluetoothFrameworkInitializer; import android.companion.CompanionDeviceManager; import android.companion.ICompanionDeviceManager; import android.companion.virtual.IVirtualDeviceManager; Loading Loading @@ -346,13 +346,6 @@ public final class SystemServiceRegistry { return new MediaRouter(ctx); }}); registerService(Context.BLUETOOTH_SERVICE, BluetoothManager.class, new CachedServiceFetcher<BluetoothManager>() { @Override public BluetoothManager createService(ContextImpl ctx) { return new BluetoothManager(ctx); }}); registerService(Context.HDMI_CONTROL_SERVICE, HdmiControlManager.class, new StaticServiceFetcher<HdmiControlManager>() { @Override Loading Loading @@ -1530,6 +1523,7 @@ public final class SystemServiceRegistry { ConnectivityFrameworkInitializer.registerServiceWrappers(); JobSchedulerFrameworkInitializer.registerServiceWrappers(); BlobStoreManagerFrameworkInitializer.initialize(); BluetoothFrameworkInitializer.registerServiceWrappers(); TelephonyFrameworkInitializer.registerServiceWrappers(); AppSearchManagerFrameworkInitializer.initialize(); WifiFrameworkInitializer.registerServiceWrappers(); Loading core/java/android/os/BluetoothServiceManager.java 0 → 100644 +121 −0 Original line number Diff line number Diff line /* * Copyright (C) 2019 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.os; import android.annotation.NonNull; import android.annotation.Nullable; import android.content.Context; import android.annotation.SystemApi; import android.annotation.SystemApi.Client; import android.os.BluetoothServiceManager; /** * Provides a way to register and obtain the system service binder objects managed by the bluetooth * service. * * @hide */ @SystemApi(client = Client.MODULE_LIBRARIES) public class BluetoothServiceManager { /** @hide */ public static final String BLUETOOTH_MANAGER_SERVICE = "bluetooth_manager"; /** * @hide */ public BluetoothServiceManager() { } /** * A class that exposes the methods to register and obtain each system service. */ public static final class ServiceRegisterer { private final String mServiceName; /** * @hide */ public ServiceRegisterer(String serviceName) { mServiceName = serviceName; } /** * Register a system server binding object for a service. */ public void register(@NonNull IBinder service) { ServiceManager.addService(mServiceName, service); } /** * Get the system server binding object for a service. * * <p>This blocks until the service instance is ready, * or a timeout happens, in which case it returns null. */ @Nullable public IBinder get() { return ServiceManager.getService(mServiceName); } /** * Get the system server binding object for a service. * * <p>This blocks until the service instance is ready, * or a timeout happens, in which case it throws {@link ServiceNotFoundException}. */ @NonNull public IBinder getOrThrow() throws ServiceNotFoundException { try { return ServiceManager.getServiceOrThrow(mServiceName); } catch (ServiceManager.ServiceNotFoundException e) { throw new ServiceNotFoundException(mServiceName); } } /** * Get the system server binding object for a service. If the specified service is * not available, it returns null. */ @Nullable public IBinder tryGet() { return ServiceManager.checkService(mServiceName); } } /** * See {@link ServiceRegisterer#getOrThrow}. * */ public static class ServiceNotFoundException extends ServiceManager.ServiceNotFoundException { /** * Constructor. * * @param name the name of the binder service that cannot be found. * */ public ServiceNotFoundException(@NonNull String name) { super(name); } } /** * Returns {@link ServiceRegisterer} for the "bluetooth" service. */ @NonNull public ServiceRegisterer getBluetoothManagerServiceRegisterer() { return new ServiceRegisterer(BLUETOOTH_MANAGER_SERVICE); } } Loading
core/api/module-lib-current.txt +20 −0 Original line number Diff line number Diff line Loading @@ -88,6 +88,11 @@ package android.app.usage { package android.bluetooth { public class BluetoothFrameworkInitializer { method public static void registerServiceWrappers(); method public static void setBluetoothServiceManager(@NonNull android.os.BluetoothServiceManager); } public final class BluetoothPan implements android.bluetooth.BluetoothProfile { method @Nullable @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED, android.Manifest.permission.TETHER_PRIVILEGED}) public android.net.TetheringManager.TetheredInterfaceRequest requestTetheredInterface(@NonNull java.util.concurrent.Executor, @NonNull android.net.TetheringManager.TetheredInterfaceCallback); } Loading Loading @@ -382,6 +387,21 @@ package android.os { method public final void markVintfStability(); } public class BluetoothServiceManager { method @NonNull public android.os.BluetoothServiceManager.ServiceRegisterer getBluetoothManagerServiceRegisterer(); } public static class BluetoothServiceManager.ServiceNotFoundException extends java.lang.Exception { ctor public BluetoothServiceManager.ServiceNotFoundException(@NonNull String); } public static final class BluetoothServiceManager.ServiceRegisterer { method @Nullable public android.os.IBinder get(); method @NonNull public android.os.IBinder getOrThrow() throws android.os.BluetoothServiceManager.ServiceNotFoundException; method public void register(@NonNull android.os.IBinder); method @Nullable public android.os.IBinder tryGet(); } public class Build { method public static boolean isDebuggable(); } Loading
core/java/android/app/ActivityThread.java +3 −0 Original line number Diff line number Diff line Loading @@ -61,6 +61,7 @@ import android.app.servertransaction.PendingTransactionActions.StopInfo; import android.app.servertransaction.ResumeActivityItem; import android.app.servertransaction.TransactionExecutor; import android.app.servertransaction.TransactionExecutorHelper; import android.bluetooth.BluetoothFrameworkInitializer; import android.compat.annotation.UnsupportedAppUsage; import android.content.AttributionSource; import android.content.AutofillOptions; Loading Loading @@ -109,6 +110,7 @@ import android.net.TrafficStats; import android.net.Uri; import android.os.AsyncTask; import android.os.Binder; import android.os.BluetoothServiceManager; import android.os.Build; import android.os.Bundle; import android.os.CancellationSignal; Loading Loading @@ -7919,6 +7921,7 @@ public final class ActivityThread extends ClientTransactionHandler StatsFrameworkInitializer.setStatsServiceManager(new StatsServiceManager()); MediaFrameworkPlatformInitializer.setMediaServiceManager(new MediaServiceManager()); MediaFrameworkInitializer.setMediaServiceManager(new MediaServiceManager()); BluetoothFrameworkInitializer.setBluetoothServiceManager(new BluetoothServiceManager()); } private void purgePendingResources() { Loading
core/java/android/app/SystemServiceRegistry.java +2 −8 Original line number Diff line number Diff line Loading @@ -49,7 +49,7 @@ import android.app.usage.StorageStatsManager; import android.app.usage.UsageStatsManager; import android.apphibernation.AppHibernationManager; import android.appwidget.AppWidgetManager; import android.bluetooth.BluetoothManager; import android.bluetooth.BluetoothFrameworkInitializer; import android.companion.CompanionDeviceManager; import android.companion.ICompanionDeviceManager; import android.companion.virtual.IVirtualDeviceManager; Loading Loading @@ -346,13 +346,6 @@ public final class SystemServiceRegistry { return new MediaRouter(ctx); }}); registerService(Context.BLUETOOTH_SERVICE, BluetoothManager.class, new CachedServiceFetcher<BluetoothManager>() { @Override public BluetoothManager createService(ContextImpl ctx) { return new BluetoothManager(ctx); }}); registerService(Context.HDMI_CONTROL_SERVICE, HdmiControlManager.class, new StaticServiceFetcher<HdmiControlManager>() { @Override Loading Loading @@ -1530,6 +1523,7 @@ public final class SystemServiceRegistry { ConnectivityFrameworkInitializer.registerServiceWrappers(); JobSchedulerFrameworkInitializer.registerServiceWrappers(); BlobStoreManagerFrameworkInitializer.initialize(); BluetoothFrameworkInitializer.registerServiceWrappers(); TelephonyFrameworkInitializer.registerServiceWrappers(); AppSearchManagerFrameworkInitializer.initialize(); WifiFrameworkInitializer.registerServiceWrappers(); Loading
core/java/android/os/BluetoothServiceManager.java 0 → 100644 +121 −0 Original line number Diff line number Diff line /* * Copyright (C) 2019 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.os; import android.annotation.NonNull; import android.annotation.Nullable; import android.content.Context; import android.annotation.SystemApi; import android.annotation.SystemApi.Client; import android.os.BluetoothServiceManager; /** * Provides a way to register and obtain the system service binder objects managed by the bluetooth * service. * * @hide */ @SystemApi(client = Client.MODULE_LIBRARIES) public class BluetoothServiceManager { /** @hide */ public static final String BLUETOOTH_MANAGER_SERVICE = "bluetooth_manager"; /** * @hide */ public BluetoothServiceManager() { } /** * A class that exposes the methods to register and obtain each system service. */ public static final class ServiceRegisterer { private final String mServiceName; /** * @hide */ public ServiceRegisterer(String serviceName) { mServiceName = serviceName; } /** * Register a system server binding object for a service. */ public void register(@NonNull IBinder service) { ServiceManager.addService(mServiceName, service); } /** * Get the system server binding object for a service. * * <p>This blocks until the service instance is ready, * or a timeout happens, in which case it returns null. */ @Nullable public IBinder get() { return ServiceManager.getService(mServiceName); } /** * Get the system server binding object for a service. * * <p>This blocks until the service instance is ready, * or a timeout happens, in which case it throws {@link ServiceNotFoundException}. */ @NonNull public IBinder getOrThrow() throws ServiceNotFoundException { try { return ServiceManager.getServiceOrThrow(mServiceName); } catch (ServiceManager.ServiceNotFoundException e) { throw new ServiceNotFoundException(mServiceName); } } /** * Get the system server binding object for a service. If the specified service is * not available, it returns null. */ @Nullable public IBinder tryGet() { return ServiceManager.checkService(mServiceName); } } /** * See {@link ServiceRegisterer#getOrThrow}. * */ public static class ServiceNotFoundException extends ServiceManager.ServiceNotFoundException { /** * Constructor. * * @param name the name of the binder service that cannot be found. * */ public ServiceNotFoundException(@NonNull String name) { super(name); } } /** * Returns {@link ServiceRegisterer} for the "bluetooth" service. */ @NonNull public ServiceRegisterer getBluetoothManagerServiceRegisterer() { return new ServiceRegisterer(BLUETOOTH_MANAGER_SERVICE); } }