我在Manifest中添加了“android.permission.WRITE_SECURE_SETTINGS”。但我仍然收到一条错误消息 - 要求“WRITE_SECURE_SETTINGS”。
我已经看过很多关于此问题的讨论,并且第三方软件阻止了此设置。
我可以添加我的应用程序以任何其他方式获得此权限吗?
我已经看到了这个adb命令,但我不太熟悉如何使用它来将我的应用程序添加到我的设备,下面的命令是在我可以使用之前需要root我的设备,因为它无法通过只读文件进行复制系统
adb remount
adb push app.apk /system/app/
答案 0 :(得分:13)
首先,正如您之前所读到的,WRITE_SECURE_SETTINGS NOT 可供应用程序使用!因此,无论您是使用root用户还是生成版本,都无法使用此权限。
因此,如果您希望启用此设置,请创建自己的固件以满足您的需要,并在您希望的任何设备上加载该固件。或者,将您的更改提供给现有固件模块(例如,Cyanogen)。
其他一些应用程序使用像Reflection
这样的技术来使用Java来访问未通过API公开的函数,你可以尝试相同的。
其次,adb remount
不能像生产版本一样工作,除非手机是root用户或默认情况下固件启用它。
答案 1 :(得分:12)
我最近在努力解决这个问题。我的客户想要一个应用程序,可以在设备充电时关闭NFC(无线充电器),然后在从充电器中取出时打开。我在我的Nexus 7上运行KitKat,即使我在清单中有WRITE_SECURE_SETTINGS
,在/system/app/
中有应用程序,也无法运行。
事实证明,在4.4中他们增加了额外的安全性。然而,在4.3中,如果有三件事情是真的,它就会起作用:
WRITE_SECURE_SETTINGS
/system/app/
我使用来自http://www.wugfresh.com/nrt/的真棒Nexus Root Toolkit(NRT)对设备进行了植根,然后从以下位置安装了BusyBox和系统app mover:
https://play.google.com/store/apps/details?id=stericson.busybox https://play.google.com/store/apps/details?id=de.j4velin.systemappmover
我安装了自定义签名的APK并使用系统应用移动设备将其移动到位,然后重新启动设备。它工作得很好。希望这会有所帮助。
答案 2 :(得分:3)
对于我使用的api,需要WRITE_SECURE_SETTINGS权限,我必须在清单中包含它:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
...
coreApp="true"
android:sharedUserId="android.uid.system">
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/>
...
参考:https://github.com/android/platform_packages_apps_settings/blob/master/AndroidManifest.xml
我还必须将应用程序作为系统应用程序运行(在:/ system / app下)。 以下是如何:http://www.addictivetips.com/mobile/how-to-install-any-app-as-system-app-on-android/
答案 3 :(得分:2)
我想补充一点,可以通过adb授予WRITE_SECURE_SETTINGS权限,并且这种方法不需要root。这是一个命令:
adb shell pm grant your.package.name android.permission.WRITE_SECURE_SETTINGS
答案 4 :(得分:0)
我也遇到了这种情况,然后我遵循以下规则: 1.在清单中添加WRITE_SECURE_SETTINGS 2.制作我自己的固件 3.add LOCAL_CERTIRICATE:= platform
答案 5 :(得分:-3)
我能够通过启用通知访问来解决此问题。
go to settings
click on sound and notification
scroll down
click on notification access