Implicit intents with startService are not safe错误的解决方式

Outlook总是提示登录微软,怎么办? Outlook 2021反复弹出Microsoft登录窗口,可能是由于Modern Authentication身份验证机制或凭据问题导致。解决方案包括:1)通过注册表关闭Modern Authentication(适用于本地Exchange);2)清理Windows凭据管理器中的旧认证信息;3)手动配置Exchange服务器地址;4)通过注册表阻止Microsoft登录窗口弹出(适用于非M365环境)。建议按顺序尝试,尤其前两步通常能解决问题。经测试,步骤1和2已有效解决该问题。 阅读详情

原文链接:http://www.eoeandroid.com/thread-568853-1-1.html

有些时候我们使用Service的时需要采用隐私启动的方式,但是Android 5.0一出来后,其中有个特性就是Service Intent  must be explitict,也就是说从Lollipop开始,service服务必须采用显示方式启动。

而android源码是这样写的(源码位置:sdk/sources/android-21/android/app/ContextImpl.java):

     private void validateServiceIntent(Intent service) {
            if (service.getComponent() == null && service.getPackage() == null) {
                if (getApplicationInfo().targetSdkVersion >= Build.VERSION_CODES.LOLLIPOP) {
                    IllegalArgumentException ex = new IllegalArgumentException(
                            "Service Intent must be explicit: " + service);
                    throw ex;
                } else {
                    Log.w(TAG, "Implicit intents with startService are not safe: " + service
                            + " " + Debug.getCallers(2, 3));
                }
            }
        }

那么这里有两种解决方法:

1、设置Action和packageName:

参考代码如下:

    Intent mIntent = new Intent();
    mIntent.setAction("XXX.XXX.XXX");//你定义的service的action
    mIntent.setPackage(getPackageName());//这里你需要设置你应用的包名
    context.startService(mIntent);


此方式是google官方推荐使用的解决方法。

在此附上地址供大家参考:http://developer.android.com/goo ... tml#billing-service,有兴趣的可以去看看。


2、将隐式启动转换为显示启动:--参考地址:http://stackoverflow.com/a/26318757/1446466

    public static Intent getExplicitIntent(Context context, Intent implicitIntent) {
            // Retrieve all services that can match the given intent
            PackageManager pm = context.getPackageManager();
            List<ResolveInfo> resolveInfo = pm.queryIntentServices(implicitIntent, 0);
            // Make sure only one match was found
            if (resolveInfo == null || resolveInfo.size() != 1) {
                return null;
            }
            // Get component info and create ComponentName
            ResolveInfo serviceInfo = resolveInfo.get(0);
            String packageName = serviceInfo.serviceInfo.packageName;
            String className = serviceInfo.serviceInfo.name;
            ComponentName component = new ComponentName(packageName, className);
            // Create a new intent. Use the old one for extras and such reuse
            Intent explicitIntent = new Intent(implicitIntent);
            // Set the component to be explicit
            explicitIntent.setComponent(component);
            return explicitIntent;
        }

调用方式如下:

    Intent mIntent = new Intent();
    mIntent.setAction("XXX.XXX.XXX");
    Intent eintent = new Intent(getExplicitIntent(mContext,mIntent));
    context.startService(eintent);




MTK平台高效部署Qwen2.5大模型:从转换到推理全流程解析 本文详细解析了在联发科(MTK)NeuroPilot平台上高效部署Qwen2.5大模型的全流程。内容涵盖从环境搭建、模型转换、量化优化到编译部署与上机推理的完整步骤,重点分享了模型转换与模型运行的关键实践与避坑指南,旨在帮助开发者将大语言模型成功集成至移动及边缘设备。 阅读详情

相关推荐

边缘设备选型指南:从数据采集到AI推理,工业物联网硬件如何匹配你的需求?

本文提供了一份全面的工业物联网边缘设备选型指南,系统性地阐述了如何根据数据采集、协议兼容性、边缘AI推理算力及环境适应性等核心需求匹配硬件。文章深入剖析了从CPU/GPU/NPU选择到MQTT、Sparkplug B等工业协议支持的实战考量,并强调了软件生态与全生命周期成本的重要性,旨在帮助项目负责人在复杂场景中做出明智决策。

weixin_29168813的博客 88

如何解决Android 5.0中出现的警告:Service Intent must be explicit

有些时候我们使用Service的时需要采用隐私启动的方式,但是Android 5.0一出来后,其中有个特性就是Service Intent  must be explitict,也就是说从Lollipop开始,service服务必须采用显示方式启动。而android源码是这样写的(源码位置:sdk/sources/android-21/android/app/ContextImpl.java): ...

weixin_34204722的博客 667

pycharm添加Anaconda解释器显示不出来

因为我之前下载的是pycharm最新版本2024.1的,所以我抱着试一试的心态卸载重装了2021.3.3的,创建新文件的时候立刻就自己识别好了conda环境。就是图中画圈的地方,之前一直显示为python的图标,但是再Python Interpreter后面跟的路径确实是我下载anaconda的地方。另外一种方法就是使用Virtualenv Environment方式配置,但是我的pycharm还是没有识别出conda的图标。首先是这位的方法,先添加系统解释器,再重启,但是我的图标还是python。

2202_75803271的博客 4006

如何解决Android 5.0中出现的警告: Service Intent must be explicit:

1.错误描述 今天在Android4.4 的小米4手机上运行我的程序的时候没有报错,而在Android 5.1的华为P7上运行我的程序的时候报了以下的错误,错误提示如下: E/AndroidRuntime(12500): FATAL EXCEPTION: main E/AndroidRuntime(12500): Process: com.xtc.watch, PID: 12500 E/A

qq_15796477的博客 466

ADS负载牵引仿真避坑指南:从零开始搞定Loadpull模板设置

本文是一份针对ADS负载牵引仿真的深度避坑指南,详细解析了Loadpull模板从初始化配置到结果解读的全过程。文章重点阐述了如何根据设计目标灵活设置扫描圆、采样点等关键参数,以解决仿真不收敛、结果不完整等常见问题,并指导读者在功率与效率之间做出理性权衡,最终提取出用于匹配网络设计的最优负载阻抗。

weixin_29234423的博客 597

U8采购入库单CO接口开发实战:加载、新增与删除操作详解

本文详细解析了用友U8采购入库单CO接口的开发实战,重点介绍了加载、新增与删除三大核心操作的实现方法。通过C#代码示例和实际项目经验,帮助开发者高效处理采购入库单,提升企业供应链管理效率。文章还涵盖了环境配置、异常处理、性能优化等关键技巧,适合U8二次开发人员参考。

weixin_33462927的博客 375

Android中提示:Service Intent must be explicit:Intent

场景 在使用bindService时第一个intent参数在声明时使用的 String actionName = "com.shoushuo.android.tts.intent.action.InvokeTts"; Intent intent = new Intent(actionName); this.bindService(intent, connection, Context.BIND_AUTO_CREATE); 然后提示: Service Intent must be explicit:

BADAO_LIUMANG_QIZHI的博客 1227

Stata中介效应分析实战:从sgmediation安装到Sobel检验结果解读

本文提供了Stata中进行中介效应分析的完整实战指南,重点介绍了第三方命令sgmediation的安装、配置与使用。通过详细案例演示了如何运用Sobel检验分析变量间的间接效应,并深入解读检验结果,帮助研究者厘清自变量影响因变量的具体路径。文章还探讨了Sobel检验的原理、优缺点及结果报告规范,是进行实证研究的实用参考。

weixin_29197051的博客 630

(原创)解决报错:Service Intent must be explicit: Intent

最近遇到这个报错,是在startService中出现的,下面提供两种解决方法 第一种: 给你启动Service的intent添加包名 注意,这个包名是被启动的Service的包名 如果是应用启动自身内部的Service,填写自己的包名即可 就像这样: intent.setPackage(context.getPackageName()); context.startService(i...

Android_xiong_st的博客 1436

全面讲解电子齿轮比与脉冲数计算

什么是编码器分辨率。

viixin的博客 1万+

SD--根据订单创建出库单(相关的函数列表的介绍系列篇(2))

创建订单样例代码参见:http://blog.youkuaiyun.com/CompassButton/archive/2007/05/09/1601712.aspx 可以根据一个订单或者部分订单项来创建出库单,代码如下:* Populating the item data lx_sales_item-ref_doc = l_vbeln. lx_sales_item-ref_item = c_000010

SAP BLOG--Jack Wu 6226

Implicit intents with startService are not safe错误的解决方式(转)

原文链接:http://www.eoeandroid.com/thread-568853-1-1.html 有些时候我们使用Service的时需要采用隐私启动的方式,但是Android 5.0一出来后,其中有个特性就是Service Intent  must be explitict,也就是说从Lollipop开始,service服务必须采用显示方式启动。 而android源码

莹波&微步 650

YOLOv26与其他目标检测算法的对比分析

本文对YOLOv26与其他主流目标检测算法进行了全面对比分析。YOLOv26在COCO数据集上达到96.0% mAP@0.5和79.0% mAP@0.5:0.95,显著优于其他YOLO系列算法,同时保持85FPS的推理速度和35MB的轻量级模型。相比两阶段算法(如Faster R-CNN),YOLOv26在速度、模型大小和内存占用方面优势明显;相比Anchor-free算法(如CenterNet),YOLOv26在速度和模型压缩方面更优。其核心创新包括动态锚框分配、自注意力机制和轻量级设计,使其成为适用于复

一键难忘的博客 994

《完美解决系列》Android5.0以上 Implicit intents with startService are not safe

在Android6.0上,使用了以下代码:Intent intent = new Intent(); intent.setAction("xxx.server"); bindService(intent, mConn, Context.BIND_AUTO_CREATE);提示了警告的异常:Implicit intents with startService are not

OAOAAce的专栏 2164

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

安卓面试题总结

Android 的四大组件分别是:Activity、Service、Broadcast Receiver 和 Content Provider. 1)Activity:这是你与用户进行交互的入口。每一个 Activity 都是一个单独的界面,负责显示 UI和响应用户操作。 2)Service:Service 是运行在后台且不直接与用户交互的组件。适用于需要在后台执行长时间运行操作的任务,类似播放音乐或下载文件等。 3)Broadcast Receiver:用于

my_power520的博客 588

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Service Intent must be explicit错误

在Android 5.0以上版本,Intent必须声明为显式,否则会报Service Intent must be explicit错误,解决的方法很简单,在Intent中设定需要响应此Intent的包信息就可以了:Intent intent = new Intent(); intent.setAction("YOUR_ACTION"); intent.setPackage("TargetPacka

RickyXE 533

Service Intent must be explicit异常分析

该异常发生的关键字是:Service Intent must be explicit Android在升级到5.0系统后会产生这样的崩溃。直接通过action启动service,就会导致这个问题,我们必须指定component或package才能避免这类为题,如下所示:Intent intent = new Intent(); intent.setAction("your action name")

活在当下!输出快乐! 898

Service Intent must be explicit: Intent 解决

java.lang.IllegalArgumentException: Service Intent must be explicit: Intent { act=com.google.android.gms.analytics.service.START (has extras) } 在Activity中启动Service的时候报错: 服务意图必须是显性声明。 这是为了防止造成冲突

zzhongcy的专栏 1万+

解决Android 5.0中出现的错误:Service Intent must be explicit

最近在开发SDK,用户在使用过程中遇到一个问题,在启动service的时候报如下错误:错误提示也比较明显,Service Intent必须是显示的。这里我启动service的时候确实是隐式的: bindService(new Intent(MidConstants.ACTION_SERV_TRANS), mTransServiceConnection, Context.BIND_AUTO_CRE

fly_yuge的博客 666

解决Service Intent must be explicit错误

在启动或绑定Service的时候,在一个手机上使用的好好的,而换了一个手机则出现Service Intent must be explicit错误,导致整个程序崩溃。这个错误多半是系统版本不同而引起的。 Android5.0以上的系统启动或绑定Service的时候,必须是显性启动,而通常我们直接使用Action来启动。在Android5.0及以上的手机中,如还使用此方式的话,就会出现Servic

u013524014的专栏 953

Service Intent must be explicit解决方案

06-30 20:06:08.251 6892-6892/com.test.aidl E/AndroidRuntime: FATAL EXCEPTION: main Process: com.test.aidl, PID: 6892

曹银飞的专栏 3527

新手求助,关于添加隐式intent程序崩溃问题

新手一枚,刚开始学Android开发,最近在学隐式intent,发现加入后不报错但是运行后系统崩溃,有木有大神愿意指导一下,感激不尽。 以下为日志信息: 12-04 14:07:33.871: E/AndroidRuntime(2301): FATAL EXCEPTION: main 12-04 14:07:33.871: E/AndroidRuntime(2301): Process: c

lubi4360的博客 692

Service Intent must be explicit的两种解决方法

crash的原因是5.0以上service不能使用隐式intent启动,但是使用AIDL进行进程间通信时并不能得到具体的类名,so, 问题还得解决。 方法一 最简单的是新建Intent的时候带入packagename,直接调用setPackage方法,把service所在的包名设置进intent。 Intent intent = new Intent(); intent.setAction("com.boomstack.aidl"); intent.s

u013297881的专栏 5180

Android隐式(远程)启动Service

Android启动service首先肯定可以的是: Intentintent=Intent(context, service.class); startService(intent); // bindService(...); 如果是远程绑定service: 一。当然最先想到的是显式启动 String packageName = ***packageName; String className = ***name; ComponentName component = n...

Jason_Lee155的博客 1298
上一篇: 【Android】实现Mac中的Cover Flow效果
下一篇: iOS常用开发工具
StreamH
博客等级 码龄22年 47粉丝 54原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值