frameworks\base\services\core\java\com\android\server\display\DisplayManagerService.java
private void registerWifiDisplayAdapterLocked() { if (mContext.getResources().getBoolean( com.android.internal.R.bool.config_enableWifiDisplay) || SystemProperties.getInt(FORCE_WIFI_DISPLAY_ENABLE, -1) == 1) { mWifiDisplayAdapter = new WifiDisplayAdapter( mSyncRoot, mContext, mHandler, mDisplayAdapterListener, mPersistentDataStore); registerDisplayAdapterLocked(mWifiDisplayAdapter); } }这里让判断条件为false就可以 了,这样 mWifiDisplayAdapter 就为null
那么接下来的方法
private WifiDisplayStatus getWifiDisplayStatusInternal() { synchronized (mSyncRoot) { if (mWifiDisplayAdapter != null) { return mWifiDisplayAdapter.getWifiDisplayStatusLocked(); } return new WifiDisplayStatus(); } }就会调用无参构造
public WifiDisplayStatus() { this(FEATURE_STATE_UNAVAILABLE, SCAN_STATE_NOT_SCANNING, DISPLAY_STATE_NOT_CONNECTED, null, WifiDisplay.EMPTY_ARRAY, null); }第一个参数就会为 FEATURE_STATE_UNAVAILABLE= 0
这样的话设置里的cast菜单里的打开投射的菜单就没有了,那这个功能就不存在了
设置里去掉cast这个item
\packages\apps\Settings\res\xml\sound_settings.xml
注释掉
<!-- Cast --> <PreferenceScreen android:key="wifi_display" android:title="@string/wifi_display_settings_title" android:fragment="com.android.settings.wfd.WifiDisplaySettings" />
还有packages\apps\Settings\res\xml\display_settings.xml 也注释掉
<DropDownPreference android:key="vr_display_pref" android:summary="%s" android:title="@string/display_vr_pref_title" />
这样好像还会在setting里搜索到,我暂时不知道怎么改。