网站设计哪家专业,运营一个网站要多少钱,优秀网站优点,程序员找工作网站文章目录 开发平台基本信息问题描述解决方法 开发平台基本信息
芯片: MTK8766 版本: Android 12 kernel: msm-4.19
问题描述
最近做了一款没有屏幕显示的智能盒子#xff0c;要想操控这款设备就只能通过adb投屏#xff0c;如果默认不允许有线连接#xff0c;那么要怎么实… 文章目录 开发平台基本信息问题描述解决方法 开发平台基本信息
芯片: MTK8766 版本: Android 12 kernel: msm-4.19
问题描述
最近做了一款没有屏幕显示的智能盒子要想操控这款设备就只能通过adb投屏如果默认不允许有线连接那么要怎么实现adb投屏呢安卓是支持WIFI adb连接投屏的只要盒子启动热点然后用手机或者其他有屏幕的设备连接盒子的热点这样就可以通过IP地址在有屏幕的设备操纵智能盒子。所以需要做的事情有几个
修改盒子热点的默认名称、密码固定热点的IP地址
解决方法
设备默认开启热点固定热点的名称、密码以及IP地址然后手机或者电脑连接设备的热点这样电脑跟设备就处于同一个局域网内通过固定IP就能连接、操作设备。
固定热点名称、密码
--- a/packages/modules/Wifi/service/java/com/android/server/wifi/WifiApConfigStore.javab/packages/modules/Wifi/service/java/com/android/server/wifi/WifiApConfigStore.java-346,13 346,16 public class WifiApConfigStore {private SoftApConfiguration getDefaultApConfiguration() {SoftApConfiguration.Builder configBuilder new SoftApConfiguration.Builder();configBuilder.setBand(generateDefaultBand(mContext));
- configBuilder.setSsid(mContext.getResources().getString(
- R.string.wifi_tether_configure_ssid_default) _ getRandomIntForDefaultSsid());// configBuilder.setSsid(mContext.getResources().getString(// R.string.wifi_tether_configure_ssid_default) _ getRandomIntForDefaultSsid());configBuilder.setSsid(WIFI_Test);if (ApConfigUtil.isWpa3SaeSupported(mContext)) {
- configBuilder.setPassphrase(generatePassword(),// configBuilder.setPassphrase(generatePassword(),configBuilder.setPassphrase(123456,SoftApConfiguration.SECURITY_TYPE_WPA3_SAE_TRANSITION);} else {
- configBuilder.setPassphrase(generatePassword(),// configBuilder.setPassphrase(generatePassword(),configBuilder.setPassphrase(123456,SoftApConfiguration.SECURITY_TYPE_WPA2_PSK);}
固定IP地址
--- a/packages/modules/Connectivity/Tethering/src/android/net/ip/IpServer.javab/packages/modules/Connectivity/Tethering/src/android/net/ip/IpServer.java-111,6 111,7 public class IpServer extends StateMachine {// TODO: have PanService use some visible version of this constantprivate static final String BLUETOOTH_IFACE_ADDR 192.168.44.1/24;private static final String WIFI_IFACE_ADDR 192.168.68.68/24;// TODO: have this configurableprivate static final int DHCP_LEASE_TIME_SECS 3600;-657,6 658,8 public class IpServer extends StateMachine {if (mInterfaceType TetheringManager.TETHERING_BLUETOOTH) {return new LinkAddress(BLUETOOTH_IFACE_ADDR);}else if (mInterfaceType TetheringManager.TETHERING_WIFI){return new LinkAddress(WIFI_IFACE_ADDR);}return mPrivateAddressCoordinator.requestDownstreamAddress(this, useLastAddress);
接收到开机广播默认开启热点
--- a/frameworks/base/custom/java/com/common/sdk/security/SecurityService.javab/frameworks/base/custom/java/com/common/sdk/security/SecurityService.java-60,6 60,10 import android.os.UserHandle;import static android.provider.Settings.System.SHOW_BATTERY_PERCENT;import static android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE;import android.telephony.SubscriptionManager;
import static android.net.ConnectivityManager.TETHERING_WIFI;
import android.os.Handler;
import android.os.Looper;
import android.net.ConnectivityManager;public class SecurityService extends ISecurityService.Stub {private static final String TAG SecurityService;-124,11 128,23 public class SecurityService extends ISecurityService.Stub {//}} ConnectivityManager.OnStartTetheringCallback mOnStartTetheringCallback new ConnectivityManager.OnStartTetheringCallback() {Overridepublic void onTetheringFailed() {super.onTetheringFailed();}};
private final class securityReceiver extends BroadcastReceiver {Overridepublic void onReceive(Context context, Intent intent) {if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {Log.d(TAG, Receive intent ACTION_BOOT_COMPLETED);ConnectivityManager mConnectivityManager (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);mConnectivityManager.startTethering(TETHERING_WIFI, true /* showProvisioningUi */,mOnStartTetheringCallback, new Handler(Looper.getMainLooper()));
String basebandVersion null;String languageAlreadySet null;basebandVersion TelpoUtil.getBasebandVersion();