去掉设置中的bluetooth、location、more

别再乱申请位置权限了!Android蓝牙开发避坑指南:从BLUETOOTH到BLUETOOTH_SCAN的权限变迁史 本文深入解析Android蓝牙权限从BLUETOOTH到BLUETOOTH_SCAN的演进历程,重点探讨Android 12引入的精细化权限管理机制。通过对比新旧权限体系,揭示如何正确使用NEVER_FOR_LOCATION标志避免位置权限滥用,并提供多版本兼容的实战代码示例,帮助开发者构建符合隐私规范的蓝牙应用。 阅读详情

屏蔽设置中的Bluetooth、Location、More title

显示在哪个分组(Wireless&networks\Device\Personal\System)

<meta-data android:name="com.android.settings.category"
           android:value="com.android.settings.category.wireless" />

在onCreate方法内先后执行了getMetaData和getIntent两个方法后,会通过PackageManager获取Activity的信息,得到对应的Activity的meta-data中key为com.android.settings.FRAGMENT_CLASS的值value,比如 wifi设置模块的值就是com.android.settings.WirelessSettings,然后再通过构造一个intent,并且给它增加了一个特殊的键值对,key为:settings:show_fragment,value为mFragmentClass指定的Fragment类名。

 <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
            android:value="com.android.settings.WirelessSettings" />

so modify

diff --git a/alps/packages/apps/Settings/AndroidManifest.xml b/alps/packages/apps/Settings/AndroidManifest.xml
index f35cd56..57202ab 100755
--- a/alps/packages/apps/Settings/AndroidManifest.xml
+++ b/alps/packages/apps/Settings/AndroidManifest.xml
@@ -208,12 +208,13 @@
             <intent-filter android:priority="-1">
                 <action android:name="com.android.settings.action.SETTINGS" />
             </intent-filter>
-            <meta-data android:name="com.android.settings.category"
-                android:value="com.android.settings.category.wireless" />
+                       <!-- rm more title -->
+            <!-- <meta-data android:name="com.android.settings.category" -->
+                <!-- android:value="com.android.settings.category.wireless" /> -->
             <meta-data android:name="com.android.settings.title"
                 android:resource="@string/radio_controls_title" />
-            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
-                android:value="com.android.settings.WirelessSettings" />
+            <!-- <meta-data android:name="com.android.settings.FRAGMENT_CLASS" -->
+                <!-- android:value="com.android.settings.WirelessSettings" /> -->
             <!-- Note that this doesn't really show any Wireless settings. -->
             <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
                 android:value="true" />
@@ -442,10 +443,11 @@
             <intent-filter android:priority="3">
                 <action android:name="com.android.settings.action.SETTINGS" />
             </intent-filter>
-            <meta-data android:name="com.android.settings.category"
-                android:value="com.android.settings.category.wireless" />
-            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
-                android:value="com.android.settings.bluetooth.BluetoothSettings" />
+                       <!-- rm bluetooth title -->
+            <!-- <meta-data android:name="com.android.settings.category" -->
+                <!-- android:value="com.android.settings.category.wireless" /> -->
+            <!-- <meta-data android:name="com.android.settings.FRAGMENT_CLASS" -->
+                <!-- android:value="com.android.settings.bluetooth.BluetoothSettings" /> -->
         </activity>
 
         <!-- Keep compatibility with old shortcuts. -->
@@ -1288,10 +1290,11 @@
             <intent-filter android:priority="3">
                 <action android:name="com.android.settings.action.SETTINGS" />
             </intent-filter>
-            <meta-data android:name="com.android.settings.category"
-                android:value="com.android.settings.category.personal" />
-            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
-                android:value="com.android.settings.location.LocationSettings" />
+                       <!-- rm Location title -->
+            <!-- <meta-data android:name="com.android.settings.category" -->
+                <!-- android:value="com.android.settings.category.personal" /> -->
+            <!-- <meta-data android:name="com.android.settings.FRAGMENT_CLASS" -->
+                <!-- android:value="com.android.settings.location.LocationSettings" /> -->
             <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
                 android:value="true" />
         </activity>


Android蓝牙扫描权限的坑:为什么ACCESS_COARSE_LOCATION和ACCESS_FINE_LOCATION必须同时申请? 本文深入探讨了Android蓝牙扫描权限的常见问题,解释了为什么必须同时申请ACCESS_COARSE_LOCATION和ACCESS_FINE_LOCATION权限。文章详细分析了不同Android版本对蓝牙权限的要求差异,并提供了兼容新旧版本的解决方案和最佳实践,帮助开发者避免权限申请中的常见陷阱。 阅读详情

相关推荐

Android Connectivity学习笔记–Bluetooth

Android Connectivity学习笔记–Bluetooth 1. 应用场景 设备近距离传递数据的一种方式,无需通过网络连接,节省流量 数据交换方便,理论上可传输任意类型数据 2. 使用流程 (1) 权限声明 首先必须打开的是android.permission.BLUETOOTH权限,如果同时要将此应用做服务端使用(即监听客户端的连接),则同时应打开android.permission.BLUETOOTH_ADMIN权限(一般应用都需要实现这个功能),如下: <uses-permissi

qq_40909351的博客 767

android -7.1去掉设置中的位置信息选项

android -7.1去掉设置中的位置信息选项

Android framework 409

Android 12与鸿蒙3.0+蓝牙权限适配实战:从BLUETOOTH_SCAN到精准定位

本文详细解析了Android 12与鸿蒙3.0系统下蓝牙权限适配的实战经验,重点介绍了BLUETOOTH_SCAN、BLUETOOTH_CONNECT等新权限的使用场景与跨平台差异。通过代码示例和调试技巧,帮助开发者解决智能设备开发中的权限管理难题,实现精准定位与蓝牙功能的无缝适配。

weixin_29183637的博客 281

MTK手机官方ROM提取教程

市场上越来越多能满足各类普通终端用户需求的安卓手机了,制造商们发布新设备的频率越来紧凑!就在这近期的短短数月,我们已经看到非常多的八核手机投入抢购行列,与此同时,我们也见证了中低端便携设备走向没落。但是,制造商总是尝试引导用户远离对设备的拥有完整的使用权限以确保设备拥有更长的寿命。 可是,只有当用户自己获得了对手机的完整控制权才能真正发掘安卓设备的强大能力,而不是制造商。所以,很多的开发者和

时光 3万+

Android 12蓝牙权限变更实战:从BLUETOOTH到三大运行时权限的平滑迁移

本文详细解析了Android 12蓝牙权限变更的实战方案,从传统的BLUETOOTH权限过渡到三大运行时权限(BLUETOOTH_SCAN、BLUETOOTH_ADVERTISE、BLUETOOTH_CONNECT)的平滑迁移。内容涵盖权限声明配置、动态申请策略、地理位置权限处理及常见问题解决方案,帮助开发者高效适配Android 12及以上系统的蓝牙功能开发。

weixin_29214335的博客 202

别再只配BLUETOOTH权限了!Android 12+蓝牙开发避坑:定位权限、虚拟地址与真实MAC获取全解析

本文深入解析Android 12+蓝牙开发中的关键问题,包括权限体系重构、定位权限关联、虚拟MAC地址获取等核心挑战。针对BLUETOOTH_SCAN等新增权限,提供动态申请与兼容性处理方案,并分享获取真实MAC地址的实用技巧,帮助开发者规避常见陷阱,实现跨版本兼容的蓝牙功能。

weixin_42709044的博客 489

android 8.1 去掉设置 里面 声音 中的一些功能

android 8.1 settings

阿茁的专栏 796

Bluetooth-based-location-Authentication:它是一个 LINK(通过直接邻居知识进行位置认证)的实现,用于一个名为“Rescount”的安卓应用程序,它为经常访问某些餐馆的用户提供折扣

基于蓝牙的定位认证 使用基于地理社会定位的服务(如 Foursquare [1])的人数在去年增加了一倍多。 由于其强大的分享和发现因素,基于位置的应用程序已成为口碑宣传和推广的简单来源。 公司发现基于位置的应用程序是替代传统广告方法的强大且极其有效的工具。 一些使用 LBS 的流行企业是 Gowalla [2],它为访问新地方的客户提供奖励,Groupon [3],它提供有关最近零售店每日交易的信息,SCVNGR [4],它为用户提供访问积分新的地方并进行某些挑战。 关键是所有这些应用程序都使用 GPS 作为查找用户当前位置的来源。 他们完全依赖 GPS,但 GPS 有一些或许多谬误。 蓝牙如果与一些技术和用户的适当观察一起使用,可以帮助取代 GPS。 我的项目已经实现了一个称为 LINK 协议 [5] 的协议,它可以帮助完成这个任务。 这个项目基本上有两个主要部分,一个是使用java

Android 8.1去掉Settings二级菜单中的Cast、Print模块

packages/apps/Settings/src/com/android/settings/dashboard/DashboardFragment.java 1、去掉CAST 修改 private boolean isEnableWifiDisplay = false; @Override public void onAttach(Context context) { super.onAttach(context); mDashboardFeatureProvi

不近女色曹孟德的博客 1452

jetson orin nano 使用cuPCL

jetson开发板上使用pcl时,正常使用的是cpu,拖慢了整体的效率。cuPCL有一些库用于使用CUDA处理点云。

weixin_42256401的博客 1021

Linux之SUSE系统SAP-HANA经常系统内存不足使得SAP应用不能使用解决方案

问题描述 Linux内存使用量超过阈值,使得sap应用程序无可用内存,最终导致程序崩溃。 问题原因 自己查阅了一些资料,也基于zabbix的可用内存和实际不太一样入手去找原因发现问题出现于Cached的值过大,导致系统没有可以再分配的内存空间。Cached只要用来缓存文件的,经常读写的文件会被缓存到Cached中,可以增加读写效率,该功能是Linux系统内核提供的,而SAP-HANA的日志文件很大...

liuxiangyang_的博客 6712

android 蓝牙 wifi,[RK3399—Android7.1] 去掉设置中的WIFI和蓝牙

蓝牙:packages/apps/Settings/res/values-zh-rCN/strings.xml 注释掉:packages/apps/Settings/AndroidManifest.xml 中的相关文件去掉与蓝牙相关的代码packages/apps/Settings/src/com/android/settings/Settings.javapackages/apps/Set...

weixin_35796591的博客 650

蚁群算法(Ant Colony Optimization,ACO)讲解+代码实现

通常情况下,较优的解对应的路径上的信息素会被加强,而较差解对应的信息素则会减少或蒸发。的化学物质,这种物质会在蚂蚁走过的路径上留下痕迹,后续的蚂蚁会根据这些信息素的浓度来选择路径,从而形成一条从蚁巢到食物源的。在求解TSP蚁群算法中,每只蚂蚁相互独立,用于构造不同的路线,蚂蚁之间通过信息素进行交流,合作求解。的过程,该路段经过的蚂蚁越多,信息素留下的就越多,浓度越高,更多的蚂蚁都会选择这个路段。需要注意的是,蚁群算法是一种。(6)计算每只蚂蚁的总距离:遍历每只蚂蚁的路线,累加经过的城市之间的距离。

m0_73804764的博客 1万+

Android Bluetooth(一)——蓝牙的开启和搜索

当设备完成配对后,系统会保存关于该设备的基本信息(例如设备的名称、类和 MAC 地址),并且可使用 Bluetooth API 读取这些信息。但是,这两台设备仍保持绑定状态,因此在未来的会话期间,只要二者在彼此的范围内且均未移除绑定,便可自动重新连接。用户可通过系统设置将设备设为在有限的时间内处于可检测到状态,或者,应用可请求用户在不离开应用的同时启用可检测性。设备发现是一个扫描过程,它会搜索局部区域内已启用蓝牙功能的设备,并请求与每台设备相关的某些信息。回调的调用,其结果代码等于设备可检测到的持续时间。

tracy的博客 1万+

Lisflood

文献:基于SWMM和LISFLOOD-FP模型的居住区低影响开发模拟评价。问题:多个节点溢流同时,不行,待解决。目录下,cmd命令行。

警警的博客 2666

告别GUI点点点:Formality形式化验证的TCL脚本自动化实战(附完整脚本)

本文详细介绍了如何通过TCL脚本实现Formality形式化验证的全流程自动化,显著提升验证效率并降低错误率。内容涵盖脚本框架解析、参数化设计、验证报告生成及团队协作策略,特别适合芯片设计工程师摆脱传统GUI操作,实现300%以上的效率提升。

weixin_33737134的博客 283

Location & Contected devices:Bluetooth

(1)BluetoothDevice.ACTION_FOUND 是一个字符串常量,用于在广播中标识已找到一个蓝牙设备,值是"android.bluetooth.device.action.FOUND"。(2)当你的应用调用BluetoothAdapter的startDiscovery()方法开始扫描附近的蓝牙设备时,每发现一个设备,系统就会发送这个ACTION_FOUND的广播。这个方法需要一个UUID参数,这个UUID必须是你想要连接的远程设备上的蓝牙服务的UUID。

qq_66104156的博客 1112

在 SAP BTP 中为 SAP AI Core 创建 Service Instance 和 Service Key 的完整实战指南

摘要:本文详细介绍了在SAP BTP上创建AI Core服务实例和密钥的关键步骤,这是实现ABAP系统与Gen AI大语言模型集成的核心技术环节。文章通过一个制造业财务问答场景的案例,系统梳理了从前提条件准备、架构理解到具体操作的全过程,重点解析了service instance创建、X.509证书配置等关键节点。特别强调了Extended计划选择、证书格式等易错点,为ABAP开发人员实现Gen AI场景提供了实用指南。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 274

uniapp本地离线打包后,提示未添加bluetooth模块

在使用 uniapp 进行跨端开发时,蓝牙(bluetooth)相关功能是物联网、设备互联类项目的常用需求。很多开发者在云端打包时能正常使用蓝牙功能,但切换到本地离线打包后,会遇到“未添加bluetooth模块”的报错提示,导致蓝牙功能无法正常调用。本文将针对该问题,提供 Android 端 本地离线打包解决方案,步骤详细可落地,帮助开发者快速排查并解决问题。

1524

Natural Language Processing

作者:禅与计算机程序设计艺术 1.简介 自然语言处理(NLP)是研究如何使计算机理解和处理自然语言的理论和方法,目的是让电脑更好的理解、获取、生成、存储和沟通人类语言。20世纪80年代末,IBM的三位博士陈天奇、周博磊和王力雄在贝尔实验室创建了首个自然语言处理系统——“布莱克多·艾森豪威尔”(Bletc

AI天才研究院 731

Python 爬虫实战:豆瓣 / IMDB 电影数据抓取(评分 + 剧情 + 演员阵容结构化处理)

在数据为王的时代,电影数据是进行市场分析、推荐系统构建和学术研究的重要资源。豆瓣和 IMDB 作为国内外最具影响力的电影评分和资讯网站,包含了海量高质量的电影数据。本文将带领你从零开始,构建一个健壮的 Python 爬虫,用于抓取豆瓣和 IMDB 的电影信息,并将其中的非结构化数据(如剧情简介、演员列表)进行清洗和结构化处理,最终存储到便于分析的结构化文件(如 CSV)中。

yansideyucsdn的博客 956

BlueTooth

AndroidMonth3_Day5_BlueTooth添加权限:打开蓝牙并设置允许被搜索打开蓝牙关闭蓝牙扫描蓝牙点击进行连接显示已配对蓝牙对配对的蓝牙设备发送消息开启服务器接收已配对设备消息 添加权限: <!-- 用于进行网络定位 --> <uses-permission android:name="android.permission.ACCESS_COARSE...

John_Anderson的博客 418

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Android开发——实现蓝牙扫描设备功能所需权限和服务

Android

furkaies的博客 1775

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Android 中的 `android.bluetooth` 是 Android SDK 提供的蓝牙操作核心包,支持经典蓝牙(Bluetooth Classic)和低功耗蓝牙(BLE)

Android 中的 `android.bluetooth` 是 Android SDK 提供的蓝牙操作核心包,支持经典蓝牙(Bluetooth Classic)和低功耗蓝牙(BLE)。在 Kotlin 或 Java 中使用该 API 需要适配不同 Android 版本的权限、运行时授权、API 差异(如 Android 12+ 引入的 `BLUETOOTH_CONNECT`/`BLUETOOTH_SCAN` 等新权限),以及正确的生命周期管理。

[Blog][Domain] programb.blog.youkuaiyun.com 629

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Android中Bluetooth Socket的使用

Android中Bluetooth Socket的使用 玩单片机经常需要用到蓝牙串口模块,这样也就同样需要在移动端上使用上位机软件。而使用通用的蓝牙调试APP需要频繁输入,非常麻烦。于是,我网上看了些资料自己动手写了一个Android端的蓝牙串口通信的上位机APP,用来和单片机串口通信。 当然,我也是个小萌新,错误之处希望各位大佬多多指正。 在Android中使用蓝牙串口通信实质上就是IO流的读写...

TownYoung的博客 1938

Android Bluetooth(蓝牙) - BLE开发

首先得说明什么是低功耗蓝牙BLE,BLE的全称为Bluetooth low energy(或称Blooth LE,BLE),从英文全称便可以知晓其是一种低功耗的蓝牙技术,是蓝牙技术联盟设计和销售的一种个人局域网技术,旨在用于医疗保健、运动健身、信标、安防、家庭娱乐等领域的新兴应用。让别人能发现自己,对于一个不广播的设备,周围设备感觉不到其存在的,因此,要让别的设备能发现,则必须向外广播,在广播中可以带上丰富的数据,比如设备的能力,设备名字以及其他自定义的数据,这也就有了第二种可能。

Jimmy的专栏 1930
上一篇: MTK手机官方ROM提取教程
下一篇: Android .mk文件语法解析
旧时旅人
博客等级 码龄10年 186粉丝 117原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旧时旅人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值