No Activity found to handle Intent { act=android.settings.WIFI_SETTINGS }

_JerryChen 2014-02-26 11:41:53
应用在google play上被报了一个bug,看了下log。出现问题具体场景是,用户在应用内跳转至系统的WIFI设置界面时crash。原因是,设置的跳转Activity不存在。

跳转代码如下:


startActivity(new Intent(android.provider.Settings.ACTION_WIFI_SETTINGS));


log如下:


0.15.4965
Android 4.1
Galaxy S2 (SHV-E120K)
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.settings.WIFI_SETTINGS }
at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1580)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1431)
at android.app.Activity.startActivityFromChild(Activity.java:3865)
at android.app.Activity.startActivityFromChild(Activity.java:3841)
at android.app.Activity.startActivityForResult(Activity.java:3442)
at android.app.Activity.startActivityForResult(Activity.java:3378)
at android.app.Activity.startActivity(Activity.java:3588)
at android.app.Activity.startActivity(Activity.java:3556)
at com.mdtv.witvphone.RootView.onClick(RootView.java:633)
at android.view.View.performClick(View.java:4192)
at android.view.View$PerformClick.run(View.java:17248)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4950)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:997)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:764)
at dalvik.system.NativeStart.main(Native Method)



文档上说,在有些情况下,这个Activity是有可能不存在的(名字不匹配):



另一方面,我在stackoverflow看到有人遇到了同样的问题,只是出问题的设备不一样,回帖里面也给出了一个idea,但这个解决只是针对特定的设备,再有另一个设备上出现同样的问题,还是会crash。


我目前的想法是,在代码中添加异常捕获,至少保证应用不会crash。

这个问题貌似也没有太好的解决办法,这里发帖就想知道有没有人遇到同样的问题,是否有更好的解决办法。

单就Galaxy S2 (SHV-E120K)这个设备来说,网上反应它的WIFI功能不稳定,有重大bug,我遇到的这个bug是否与这个有关系?





...全文
2083 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
baidu_24594285 2015-11-03
  • 打赏
  • 举报
回复
我也有遇到!,就算清单上注册过了,也依然会有个这个错误,搞了好久都没有结果!
Birds2018 2014-02-26
  • 打赏
  • 举报
回复
这个不准的,低版本和高版本的 wifi设置 java类不一样, 所以要用代码去找到你所在的手机版本里面的 wifi setting class是哪一个。
_JerryChen 2014-02-26
  • 打赏
  • 举报
回复
引用 1 楼 birdsaction 的回复:
这个不准的,低版本和高版本的 wifi设置 java类不一样, 所以要用代码去找到你所在的手机版本里面的 wifi setting class是哪一个。
用代码找到WIFI Setting class ? 能再详细点么? 我在跳转的时候不是写死的Calss名,而是用的系统提供的Settings.ACTION_WIFI_SETTINGS,如果不同版本的Class名不一样,这里action对应的名字应该会变的吧。

80,350

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧