平台:Android 7.3288
操作系统:
Android7.143 内核:v44.143
使用明亮的问题
点击“设置WLAN热点”,在这个
对话框
上用点亮后按任何一个都可以启动输入法。
方法:
先找到这个WifiApDialog:packages/apps/Settings/src/com/android/settings/wifi/WifiApDialog.java
我们发现这个对话框有两个可输入的输入框
私有文本视图 mSsid;
私人 EditText mPassword;
我们可以设置EditText自动获取热点且自动弹出软键盘,方法如下;
公共无效showKeyboard(EditText编辑文本){
如果(编辑文本!=空){
// 设置焦点
editText.setFocusable(true);
editText.setFocusableInTouchMode(true);
//请求获得焦点
editText.requestFocus();
//调用系统输入法
InputMethodManager inputManager = (InputMethodManager) editText.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.showSoftInput(editText, 0);
}
}
不能在才能直接调用键盘,必须在整个事件之后显示键盘等。采用处理程序新建一个任务可以在键盘中创建键盘;
新的 Handler().postDelayed(新的 Runnable(){
@覆盖
公共无效运行(){
显示键盘(mPassword);
}
},300);
的方法修改,设置进入WLAN热点的对话框,弹出软键盘,随后在更高版本自动输入的行首框;
有两个体验上的问题点:
1、按照正常的流程,应该先设置热点名称,再设置密码;
2、在输入框有默认文本的情况下,通过行尾,应该在密码输入中删除键删除草稿的内容;
针对问题1,由于调用showKeyboard,需要传一个EdidText,并且在源中的ssid被定义为TextView,不能直接传给showKeyboard,我们试将ssid由原来的TextView控件为EditText。找个这个xml文件,对比和密码的xmlssid也是一个EditText控件;那么我们不是可以在代码中定义为EditText呢?
文件:packages/apps/Settings/res/layout/wifi_ap_dialog.xml
相反,EditText可以设置问题点显示2在行尾;
editText.setSelection(editText.getText().length());
附整体补丁:
差异 --git a/src/com/android/settings/wifi/WifiApDialog.java b/src/com/android/settings/wifi/WifiApDialog.java
旧模式 100644
新模式 100755
索引 1316a49..0d383c5
--- a/src/com/android/settings/wifi/WifiApDialog.java
+++ b/src/com/android/settings/wifi/WifiApDialog.java
@@ -35,7 +35,8 @@ import android.widget.CheckBox;
导入 android.widget.EditText;
导入 android.widget.Spinner;
导入 android.widget.TextView;
-
+导入android.os.Handler;
+导入android.view.inputmethod.InputMethodManager;
导入 com.android.settings.R;
导入 java.nio.charset.Charset;
@@ -55,7 +56,7 @@ 公共类 WifiApDialog 扩展 AlertDialog 实现 View.OnClickListener,
公共静态最终 int WPA2_INDEX = 1;
私人视图 mView;
- 私有文本视图 mSsid;
+ 私人 EditText mSsid;
私有 int mSecurityTypeIndex = OPEN_INDEX;
私人 EditText mPassword;
私有 int mBandIndex = OPEN_INDEX;
@@ -115,7 +116,16 @@ 公共类 WifiApDialog 扩展 AlertDialog 实现 View.OnClickListener,
}
返回空值;
}
-
+ public void showKeyboard(EditText editText) {
+ if(editText!=null){
+ 编辑文本.setFocusable(true);
+ editText.setFocusableInTouchMode(true);
+ 编辑文本.requestFocus();
+ editText.setSelection(editText.getText().length());
+ InputMethodManager inputManager = (InputMethodManager) editText.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
+ inputManager.showSoftInput(editText, 0);
+ }
+ }
@覆盖
protected void onCreate(Bundle savedInstanceState) {
布尔mInit = true;
@@ -130,8 +140,14 @@ 公共类 WifiApDialog 扩展 AlertDialog 实现 View.OnClickListener,
setTitle(R.string.wifi_tether_configure_ap_text);
mView.findViewById(R.id.type).setVisibility(View.VISIBLE);
- mSsid = (TextView) mView.findViewById(R.id.ssid);
+ mSsid = (EditText) mView.findViewById(R.id.ssid);
mPassword = (EditText) mView.findViewById(R.id.password);
+新的处理程序()。postDelayed(新的可运行(){
+ @覆盖
+公共无效运行(){
+ 显示键盘(mSsid);
+ }
+ },300);
ArrayAdapter
通道适配器;
String countryCode = mWifiManager.getCountryCode();
上面的指针解决方案,然后打开“WLAN点击设置”,先点击自动弹出键盘,然后点击输入“AndroidAP”的行键输入框,用户点击“WLANAP”的行指示键,第一个方向键就可以点击输入框。密码草稿的行首,到可以再按会的先下键跳到行尾;密码再优化下,让默认密码为空;
修改WLAN热点默认密码:frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiApConfigStore.java
diff --git a/service/java/com/android/server/wifi/WifiApConfigStore.java b/service/java/com/android/server/wifi/WifiApConfigStore.java
旧模式 100644
新模式 100755
索引 bcd8d03..1452895
--- a/service/java/com/android/server/wifi/WifiApConfigStore.java
+++ b/service/java/com/android/server/wifi/WifiApConfigStore.java
@@ -195,7 +195,8 @@ 公共类 WifiApConfigStore {
config.allowedKeyManagement.set(KeyMgmt.WPA2_PSK);
字符串随机UUID = UUID.randomUUID().toString();
//xxxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx 的前 12 个字符
- config.preSharedKey = randomUUID.substring(0, 8) + randomUUID.substring(9, 13);
+ //config.preSharedKey = randomUUID.substring(0, 8) + randomUUID.substring(9, 13);
+ config.preSharedKey = "";
返回配置;
}
}
修改WLAN热点默认名称:frameworks/base/core/res/res/values/strings.xml
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
旧模式 100644
新模式 100755
索引 4172864..f77a024
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -2980,7 +2980,7 @@
u0020互联网连接不佳。
-
AndroidAP
+
AndroidAPAP