美文网首页
android R 系统设置定制一个可以直接打开蓝牙的fragm

android R 系统设置定制一个可以直接打开蓝牙的fragm

作者: gale_小米 | 来源:发表于2021-09-03 11:09 被阅读0次

1.客制应用需要直接打开蓝牙界面的接口,Android R里面默认没有所以重新添加一个

Index: packages/apps/Settings/AndroidManifest.xml

===================================================================

--- packages/apps/Settings/AndroidManifest.xml (revision 11165)

+++ packages/apps/Settings/AndroidManifest.xml (revision 11166)

@@ -419,10 +419,10 @@

                <action android:name="android.intent.action.MAIN" />

                <category android:name="com.android.settings.SHORTCUT" />

            </intent-filter>

-            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"

+ <meta-data android:name="com.android.settings.FRAGMENT_CLASS"

                android:value="com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment" />

        </activity-alias>

-

+

        <!-- Keep compatibility with old shortcuts. -->

        <activity-alias android:name=".bluetooth.BluetoothSettings"

                        android:label="@string/devices_title"

@@ -3192,6 +3192,21 @@

            <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"

                        android:value="true" />

        </activity>

+

+ <!---->

+ <activity

+            android:name="Settings$BluetoothConnectActivity"

+            android:label="@string/bluetooth_settings_title">

+            <intent-filter android:priority="1">

+                <action android:name="com.android.settings.BLUETOOTH_CONNECT_SETTINGS" />

+                <category android:name="android.intent.category.DEFAULT" />

+            </intent-filter>

+            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"

+                android:value="com.android.settings.connecteddevice.BluetoothDashboardFragment" />

+ <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"

+                      android:value="true" />

+        </activity>

+

        <activity android:name="Settings$BluetoothDeviceDetailActivity"

                  android:label="@string/device_details_title"

Index: packages/apps/Settings/src/com/android/settings/dashboard/DashboardFragmentRegistry.java

===================================================================

--- packages/apps/Settings/src/com/android/settings/dashboard/DashboardFragmentRegistry.java (revision 11165)

+++ packages/apps/Settings/src/com/android/settings/dashboard/DashboardFragmentRegistry.java (revision 11166)

@@ -44,6 +44,7 @@

import com.android.settings.security.LockscreenDashboardFragment;

import com.android.settings.security.SecuritySettings;

import com.android.settings.system.SystemDashboardFragment;

+import com.android.settings.connecteddevice.BluetoothDashboardFragment;

import com.android.settingslib.drawer.CategoryKey;

import java.util.Map;

@@ -75,6 +76,8 @@

                CategoryKey.CATEGORY_CONNECT);

        PARENT_TO_CATEGORY_KEY_MAP.put(AdvancedConnectedDeviceDashboardFragment.class.getName(),

                CategoryKey.CATEGORY_DEVICE);

+        PARENT_TO_CATEGORY_KEY_MAP.put(BluetoothDashboardFragment.class.getName(),

+                CategoryKey.CATEGORY_BLUETOOTH);

        PARENT_TO_CATEGORY_KEY_MAP.put(AppAndNotificationDashboardFragment.class.getName(),

                CategoryKey.CATEGORY_APPS);

        PARENT_TO_CATEGORY_KEY_MAP.put(PowerUsageSummary.class.getName(),

Index: packages/apps/Settings/src/com/android/settings/core/SubSettingLauncher.java

===================================================================

--- packages/apps/Settings/src/com/android/settings/core/SubSettingLauncher.java (revision 11165)

+++ packages/apps/Settings/src/com/android/settings/core/SubSettingLauncher.java (revision 11166)

@@ -29,6 +29,7 @@

import com.android.settings.SettingsActivity;

import com.android.settings.SubSettings;

+import android.util.Log;

import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;

public class SubSettingLauncher {

@@ -148,13 +149,11 @@

            throw new IllegalArgumentException("Destination fragment must be set");

        }

        intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT, mLaunchRequest.destinationName);

-

        if (mLaunchRequest.sourceMetricsCategory < 0) {

            throw new IllegalArgumentException("Source metrics category must be set");

        }

        intent.putExtra(MetricsFeatureProvider.EXTRA_SOURCE_METRICS_CATEGORY,

                mLaunchRequest.sourceMetricsCategory);

-

        intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS, mLaunchRequest.arguments);

        intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_TITLE_RES_PACKAGE_NAME,

                mLaunchRequest.titleResPackageName);

Index: packages/apps/Settings/src/com/android/settings/core/gateway/SettingsGateway.java

===================================================================

--- packages/apps/Settings/src/com/android/settings/core/gateway/SettingsGateway.java (revision 11165)

+++ packages/apps/Settings/src/com/android/settings/core/gateway/SettingsGateway.java (revision 11166)

@@ -62,6 +62,7 @@

import com.android.settings.bluetooth.BluetoothDeviceDetailsFragment;

import com.android.settings.bugreporthandler.BugReportHandlerPicker;

import com.android.settings.connecteddevice.AdvancedConnectedDeviceDashboardFragment;

+import com.android.settings.connecteddevice.BluetoothDashboardFragment;

import com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment;

import com.android.settings.connecteddevice.PreviouslyConnectedDeviceDashboardFragment;

import com.android.settings.connecteddevice.usb.UsbDetailsFragment;

@@ -168,6 +169,7 @@

      */

    public static final String[] ENTRY_FRAGMENTS = {

            AdvancedConnectedDeviceDashboardFragment.class.getName(),

+            BluetoothDashboardFragment.class.getName(),

            CreateShortcut.class.getName(),

            WifiSettings.class.getName(),

            WifiSettings2.class.getName(),

Index: packages/apps/Settings/src/com/android/settings/Settings.java

===================================================================

--- packages/apps/Settings/src/com/android/settings/Settings.java (revision 11165)

+++ packages/apps/Settings/src/com/android/settings/Settings.java (revision 11166)

@@ -34,6 +34,7 @@

    */

    public static class AssistGestureSettingsActivity extends SettingsActivity { /* empty */}

    public static class BluetoothSettingsActivity extends SettingsActivity { /* empty */ }

+    public static class BluetoothConnectActivity extends SettingsActivity { /* empty */ }

    public static class CreateShortcutActivity extends SettingsActivity { /* empty */ }

    public static class FaceSettingsActivity extends SettingsActivity { /* empty */ }

    public static class FingerprintSettingsActivity extends SettingsActivity { /* empty */ }

相关文章

网友评论

      本文标题:android R 系统设置定制一个可以直接打开蓝牙的fragm

      本文链接:https://www.haomeiwen.com/subject/kzkxwltx.html