首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏用户6590312的专栏

    android学习笔记——Intent和IntentFilter

    程序运行过程中连接两个不同的组件,通过Intent程序可向android传递某种请求,android通过请求的内容选择适当组件来完成请求(比如要打开浏览器之类的)【 android根据Intent请求内容查询各组件注册时声明的IntentFilter 可以调用Intent的setDataAndType来设定防止覆盖 IntentFilter(意图过滤器) : AndroidManifest注册组件时可以添加 IntentFilter,然后通过Intent的属性来过滤Intent,捕获到满足条件的组件之后启动这个组件——>隐式意图的原理

    55810发布于 2021-01-13
  • 来自专栏拭心的安卓进阶之路

    Android 进阶3:Intent 与 IntentFilter 匹配规则

    而在检查每个 Activity 能否处理 Intent 的过程中,需要访问 Intent 过滤器(IntentFilter)。 Intent 过滤器 IntentFilter 我们可以在 AndroidManifest.xml 中给 Activity 设置一个 IntentFilter 属性,比如这样: <activity 一个 Activity 也可以有多个 IntentFilter,相当于多了几个过滤器,被筛选到的可能就更大了。 IntentFilter 的匹配规则 1.action 的匹配规则 action 可以理解为一个组件具备功能、可以进行什么操作。系统为我们提供了很多内置的 action,当然也可以自定义。 以上述 intentFilter 为例,startActivity(intent) 中的 intent 至少要有 android.intent.action.EDIT 和 android.intent.action.VIEW

    1.6K80发布于 2018-01-05
  • 来自专栏全栈程序员必看

    android点滴之标准SD卡状态变化事件广播接收者的注冊「建议收藏」

    眼下最完整的,须要注冊的动作匹配例如以下: IntentFilter intentFilter = new IntentFilter(Intent.ACTION_MEDIA_MOUNTED); intentFilter.addAction(Intent.ACTION_MEDIA_UNMOUNTED); intentFilter.addAction(Intent.ACTION_MEDIA_SCANNER_STARTED ); intentFilter.addAction(Intent.ACTION_MEDIA_SCANNER_FINISHED); intentFilter.addAction (Intent.ACTION_MEDIA_CHECKING); intentFilter.addAction(Intent.ACTION_MEDIA_BAD_REMOVAL); intentFilter.addDataScheme("file"); mContext.registerReceiver(mMediaReceiver, intentFilter);

    38220编辑于 2022-07-10
  • 来自专栏非著名程序员

    Android 高效安全的本地广播 LocalBroadcast 完全解析

    当应用程序注册了某个广播时,即便设置了IntentFilter还是会接收到来自其他应用程序的广播进行匹配判断。 那如果一个Receiver注册了多个IntentFilter呢?比如说一个receiver对象注册两次传入不同的IntentFilter.所以Value需要改造为ArrayList。 } //将IntentFilter加入receiver对应的匹配规则中。 filters为mReceivers map的value,类型是IntentFilter的ArrayList。 //同一个receiver可能有多个IntentFilter。 mReceivers就记录了所有的receiver,并且指明每一个receiver所能匹配到的IntentFilter.

    1.4K70发布于 2018-02-02
  • 来自专栏安卓圈

    BroadcastReceiver插件化解决方案

    intentFilter = new IntentFilter(); intentFilter.addAction("baobao2"); registerReceiver(myReceiver,intentFilter extends IntentFilter> filters = (List<? extends IntentFilter>) RefInvoke.getFieldObject( "android.content.pm.PackageParser$Component extends IntentFilter> filters = (List<? extends IntentFilter>) RefInvoke.getFieldObject( "android.content.pm.PackageParser

    96820发布于 2019-09-26
  • 来自专栏韩曙亮的移动开发专栏

    【Android 电量优化】电量优化 ( 充电状态获取 | 主动获取充电状态 | 广播接受者监听充电状态 | 被动获取充电状态 | 注册空广播接受者获取历史广播 )

    主动获取充电状态流程 : ① 创建 IntentFilter : 创建 IntentFilter , 并为其设置 Intent.ACTION_BATTERY_CHANGED 意图 ; IntentFilter intentFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED); ② 注册广播接受者 : 调用 Context 对象的 registerReceiver 广播 , 可以从该广播中获取对应的充电状态变化数据 ; ⑥ 注册多个意图 : 如果在 IntentFilter 中注册多个意图 , 广播接收者如果不为空 , 则会处理每一个意图 , 但是返回值只能返回一个意图 intentFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED); // 注册广播接受者 Intent intent = context.registerReceiver(null, intentFilter); // 获取充电状态 int batteryChargeState =

    3.2K00编辑于 2023-03-28
  • 来自专栏github@hornhuang

    Android 广播「BroadcastReceiver」接收不到「Intent」的信息

    = IntentFilter() intentFilter.addAction(IntentManager.ACTION_TYPE_THREAD) manager.registerReceiver (broadcastReceiver, intentFilter) val intent = Intent(this, MyIntentService::class.java) startService(intent) } 可以看到 我只添加了 intentFilter.addAction(IntentManager.ACTION_TYPE_THREAD) 但是我在服务中 = IntentFilter() intentFilter.addAction(IntentManager.ACTION_TYPE_SERVICE) intentFilter.addAction (IntentManager.ACTION_TYPE_THREAD) manager.registerReceiver(broadcastReceiver, intentFilter)

    1.7K30发布于 2021-09-24
  • 来自专栏程思阳的专栏

    Android自动填充短信验证码

    通常,我们只会在注册或登录页面读取短信验证码,所以,我们采用动态注册广播的方式注册这个广播,如: // 注册广播 IntentFilter intentFilter = new IntentFilter (mSMSBroadcastReceiver,intentFilter); 取消注册 @Override protected void onDestroy() { super.onDestroy R.id.et_code); mSMSBroadcastReceiver.setOnReceiveSMSListener(this); // 注册广播 IntentFilter intentFilter = new IntentFilter(SMSBroadcastReceiver.SMS_RECEIVED_ACTION); // 设置优先级 intentFilter.setPriority(Integer.MAX_VALUE); registerReceiver(mSMSBroadcastReceiver,intentFilter

    7.6K10编辑于 2022-01-10
  • 来自专栏Spring相关

    发送自定义广播

    intentFilter; private NetworkChangeReceive networkChangeReceive; @Override protected = new IntentFilter(); intentFilter.addAction("网络改变"); networkChangeReceive = new NetworkChangeReceive (); registerReceiver(networkChangeReceive,intentFilter); Toast.makeText(this.getBaseContext = new IntentFilter(); intentFilter.addAction("com.example.broadcasttest.LOCAL_BROADCAST"); ); intentFilter.addAction("网络改变"); networkChangeReceive = new NetworkChangeReceive

    76720发布于 2018-12-17
  • 来自专栏指点的专栏

    Android 全局广播的使用

    Activity { public static String ACTION = "com.example.blogBroadcasts.MY_BROADCAST"; private IntentFilter intentFilter = null; private MyBroadcastReceiver myBroadcastReceiver = null; private Button super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); intentFilter = new IntentFilter(MainActivity.ACTION); // 设置广播接收器的信息过滤器, intentFilter.setPriority(100); ,用于过滤广播信息 registerReceiver(myBroadcastReceiver, intentFilter); intentFilter.setPriority

    2.4K10发布于 2019-01-18
  • 来自专栏达达前端

    使用广播-BroadcastReceiver最详细解析

    intentFilter; private MyReceiver myReceiver; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); intentFilter = new IntentFilter(); intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE"); myReceiver = new MyReceiver(); registerReceiver(myReceiver, intentFilter); } @Override protected void onDestroy intentFilter = new IntentFilter(); intentFilter.addAction("com....."); myReceriver = new MyReceriver

    97620发布于 2019-07-03
  • 来自专栏Android学习之路

    Android的广播

    sendOrderBroadcast()或sendStickBroadcast()方法,把intent对象以广播的形式发送出去 接收 当intent发送后,所有已经注册的BroadcastReceiver会检查注册时的IntentFilter 先定义设置好一个IntentFilter对象。然后在需要注册时调用Context.registerReceiver(),如果取消就调用Context.unregisterReceiver()方法。 intentFilter = new IntentFilter("android.net.conn.CONNECTIVITY_CHANGE"); intentFilter.setPriority(600 ); registerReceiver(receiver,intentFilter); 取消注册 context.unregisterReceiver(); @Override protected void filter = new IntentFilter("com.example.broadcast.local.async"); manager.registerReceiver(receiver,filter

    1.4K120发布于 2018-05-22
  • 来自专栏Android开发

    Android本地广播

    implements View.OnClickListener { private LocalBroadcastManager localBroadcastManager; private IntentFilter intentFilter; private LocalReceiver localReceiver; private Button show; @Override protected //发送一个本地广播 localBroadcastManager.sendBroadcast(intent); intentFilter = new IntentFilter(); intentFilter.addAction("com.changsha.yf.BroadcastReceiver"); (); //注册本地的接收器 localBroadcastManager.registerReceiver(localReceiver,intentFilter

    26700编辑于 2025-06-11
  • 来自专栏全栈程序员必看

    registerReceiver和unregisterReceiver的调用者必须一致「建议收藏」

    savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.broadcast); IntentFilter intentFilter = new IntentFilter("broad"); this.getApplication().registerReceiver(mB, intentFilter); onDestroy() { super.onDestroy(); this.unregisterReceiver(mB); } 这样会出错的哦, 改成: this.registerReceiver(mB, intentFilter ); this.unregisterReceiver(mB); 或 this.getApplication().registerReceiver(mB, intentFilter); this.getApplication

    29320编辑于 2022-10-03
  • 来自专栏Android开发经验分享

    Android SIM卡 插拔监听

    // TODO: sim卡不可用 } }); } IntentFilter intentFilter = new IntentFilter(SimStateReceiver.ACTION_SIM_STATE_CHANGED); if (! hasRegister) { hasRegister= true; context.registerReceiver(simStateReceiver, intentFilter

    2.3K20编辑于 2022-12-19
  • 来自专栏全栈程序员必看

    android登录注册跳转的代码_Android开发代码

    /android/content/ContextWrapper.java public Intent registerReceiver(BroadcastReceiver receiver, IntentFilter app/ContextImpl.java @Override public Intent registerReceiver(BroadcastReceiver receiver, IntentFilter null, null); } @Override public Intent registerReceiver(BroadcastReceiver receiver, IntentFilter extends Context { …… @Override public Intent registerReceiver(BroadcastReceiver receiver, IntentFilter getOuterContext()); } private Intent registerReceiverInternal(BroadcastReceiver receiver, IntentFilter

    1.4K30编辑于 2022-10-03
  • 来自专栏全栈程序员必看

    Android自动填充短信验证码[通俗易懂]

    通常,我们只会在注册或登录页面读取短信验证码,所以,我们采用动态注册广播的方式注册这个广播,如: // 注册广播 IntentFilter intentFilter = new IntentFilter (mSMSBroadcastReceiver,intentFilter); 取消注册 @Override protected void onDestroy() { super.onDestroy (EditText) findViewById(R.id.et_code); mSMSBroadcastReceiver.setOnReceiveSMSListener(this); // 注册广播 IntentFilter intentFilter = new IntentFilter(SMSBroadcastReceiver.SMS_RECEIVED_ACTION); // 设置优先级 intentFilter.setPriority (Integer.MAX_VALUE); registerReceiver(mSMSBroadcastReceiver,intentFilter); } @Override public void onReceived

    10.1K30编辑于 2022-09-16
  • 来自专栏Android知识分享

    Android四大组件:BroadcastReceiver史上最全面解析

    mBroadcastReceiver mBroadcastReceiver = new mBroadcastReceiver(); IntentFilter intentFilter = new IntentFilter(); //设置接收广播的类型 intentFilter.addAction(android.net.conn.CONNECTIVITY_CHANGE ); //调用Context的registerReceiver()方法进行动态注册 registerReceiver(mBroadcastReceiver, intentFilter ); //发送广播 sendBroadcast(intent); 若被注册了的广播接收者中注册时intentFilter的action与上述匹配,则会接收此广播(即进行回调onReceive())。 mBroadcastReceiver mBroadcastReceiver = new mBroadcastReceiver(); IntentFilter intentFilter = new

    2.5K10发布于 2019-02-22
  • 来自专栏全栈程序员必看

    android registerreceiver() 参数,android – 如何使用registerReceiver方法?

    android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter MyBroadcastReceiver mReceiver = new MyBroadcastReceiver(); @Override protected void onResume() { super.onResume(); IntentFilter intentFilter = new IntentFilter(); registerReceiver(mReceiver, intentFilter); } @Override public boolean

    1.6K20编辑于 2022-10-01
  • 来自专栏陶士涵的菜地

    [android] 手机卫士接收打电话广播显示号码归属地

    用户体验不好,我们使用代码注册广播接收者,用设置中心的开启监听电话来电的部分来控制这个广播 在服务里面调用registerReceiver()方法,注册广播,参数:BroadcastReceiver对象,IntentFilter 对象 获取IntentFilter对象,调用IntentFilter对象的addAction()方法,参数:android.intent.action.NEW_OUTGOING_CALL 在服务里面解除注册广播 com.qingguow.mobilesafe.utils.NumberQueryAddressUtil; import android.app.Service; import android.content.Intent; import android.content.IntentFilter PhoneStateListener.LISTEN_CALL_STATE); //注册广播 outcallReceiver=new OutcallReceiver(); IntentFilter filter=new IntentFilter(); filter.addAction("android.intent.action.NEW_OUTGOING_CALL");

    1.1K40发布于 2019-09-10
领券