因为项目需要点击一个按钮需要跳转到开启或关闭个人热点的系统设置页面,于是网上找了一个现成的代码,发现华为手机不适配,无法跳转到正确的系统设置页面。
网上的常规跳转代码
Intent intent = new Intent();
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.setAction("android.intent.action.MAIN");
ComponentName cn = new ComponentName("com.android.settings",
"com.android.settings.Settings$TetherSettingsActivity");
intent.setComponent(cn);
startActivity(intent);
华为手机没跳转到指定页面,那我们就需要查看一下在华为系统中打开关闭个人热点页面的类名是什么?
查询方式:通过adb命令查询
首先连接华为手机进入shell模式
然后使用下面命令查询当前页面的类名
dumpsys window | grep mCurrentFocus
得到如下结果
所以华为手机跳转的代码就需要把上面的类名修改一下(缺少了Wifi)
Intent intent = new Intent();
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.setAction("android.intent.action.MAIN");
ComponentName cn = new ComponentName("com.android.settings",
"com.android.settings.Settings$TetherWifiSettingsActivity");
intent.setComponent(cn);
startActivity(intent);
所以,具体的适配问题就得辛苦大家来测试不同手机关于打开关闭热点页面的具体类名然后对应修改啦!授人以鱼不如授人以渔
Android
-打开
个人
热点
页面
Intent intent = new Intent();
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.setAction("
android
.intent.action.MAIN");
ComponentName cn = new ComponentName("com.
android
.settings", "com.
android
.settings.Settings$TetherSettingsActivity")
网上方法比较多,我这边使用了通过WifiManager 拿反射的getWifiApState方法获取判断,亲测可用,最近迷上了扩展方法【dog】
跳转
手机
热点
的页面肯定是用intent,重点是action不知道是什么,网上最常见的就是。
跳转
wifi设置页面,费了一番力气,同样写为扩展方法。
这篇博客主要介绍的是
Android
主流各种机型和各种版本的悬浮窗权限
适配
,但是由于碎片化的问题,所以在
适配
方面也无法做到完全的主流机型
适配
,这个需要大家的一起努力,这个博客的名字永远都是一个将来时。
悬浮窗
适配
悬浮窗
适配
有两种方法:第一种是按照正规的流程,如果系统没有赋予 APP 弹出悬浮窗的权限,就先
跳转
到权限授权
界面
,等用户打开该权限之后,再去弹出悬浮窗,比如 QQ 等一些主流应用就是这么做得;第二种就是利用系统的漏洞,绕过权限的申请,简单粗暴,这种方法我不是特别建议,但是现在貌似有些应用就是这样,比如 UC 和有道词典,这样
适配
在大多数手机上都是 OK 的,但是在一些特殊的机型不行
创建
热点
APprivateStringmSSID="";privateStringmPasswd="";privateWifiManagermWifiManager=null;privatevoidcrateAp(){mSSID="test";mPasswd="12345678";mWifiManager=(WifiManager)this.getSys...
Usbsetting 中tethering 设置流程一 资源位置及入口文件USBtethering, usb_tethering_button_textXml/tether_prefs.xml------usb_tether_settings,布局文件packages/apps/Settings/
Android
Manifest.xml
android
:name=".TetherSettings"an...
Intent intent = new Intent();
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.setAction("
android
.intent.action.MAIN");
ComponentName cn = new ComponentName("com.
android
.settings", "com.
android
.set...
本书深入浅出,详细讲解了
Android
开发的知识,主要内容包括:
Android
的体系架构、
Android
Studio
、项目的创建、
Android
工程目录、调试程序、
界面
的搭建;常用的控件和属性、提示信息Toast和Snackbar、点击事件3种写法等;Activity之间的
跳转
、Activity生命周期、Activity启动模式等;数据存储、网络编程;图片的处理;复杂控件的使用;Fragment、广播接收者、Service、动画等;以及
Android
新特性、Kotlin语言、性能优化、屏幕
适配
、自定义控件、JNI/NDK开发等高级知识。并通过开发一个真实的项目让读者学以致用。
本书内容通俗易懂,比较适合初学者阅读,也可以作为专业人员的工具书,以及大专院校相关专业师生的学习用书和培训学校的教材。
其实
Android
的转场动画由来已久,比如平常开发安卓的时候
界面
切换
都是右进右出,这样的效果,就是早期的转场动画,在5.0之后安卓官方支持了共享元素的效果,那么问题来了,5.0以后该怎么
适配
?
定义两个activity,
界面
跳转
是从A到B.
ActivityA定义一个控件View,在
跳转
时传入到Pair里面,详细代码如下:
switch (v.getId()) {
case R.id.tv_
①、
Android
Studio
的plugin里有一个叫ADB WIFI的插件 。
在setting里面选择Plugins,然后通过搜索ADB WIFI ,点击install,然后重启as,就会发现在tool下面