我需要快速更改一些辅助功能>视觉设置-可能通过App Widget-从“正常”模式切换到某些第三方应用程序的最佳设置(这些应用程序使用非常小的字体和闪烁的白色界面):
我需要更改全局设置
可访问性>视觉>字体大小
和
可访问性>视觉>底色 [意思是“倒置”]
对于“字体大小”,我有一个提示
getResources()。getConfiguration()。fontScale
财产和
Configuration.setTo(Configuration o)
方法;
但是我还没有找到有关“负色”设置的信息,该设置会反转屏幕颜色。有人知道如何设置吗?
编辑:三星过去发布了一个应用小部件,用于快速访问“负色”辅助功能设置,我会检查其工作原理,但找不到要下载并检查的APK。如果有人拥有它-该应用程序应该包含有趣的代码。
EDIT2 :我可能在/ system / app /中的ColorBlind.apk中找到了一个提示:
显然是为了防止设置不兼容,它的一行应通过
禁用“负色”设置。
boolean android.view.accessibility.AccessibilityManager .setmDNIeNegative(false)
EDIT3 :鉴于上述信息,我试图构建一个测试应用程序,但是我遇到了SecurityException,应该防止该异常。我需要权限方面的帮助,因为它们对我来说看起来不错。
我创建了一个简单的测试应用程序
AccessibilityManager am = (AccessibilityManager) getSystemService(Context.ACCESSIBILITY_SERVICE);
am.setmDNIeNegative(true);
但是由于找不到方法boolean AccessibilityManager.setmDNIeNegative(boolean)
,因此我在生成的APK上使用了apktool
并将相关的smali设置为:
.line 18
const-string v1, "accessibility"
invoke-virtual {p0, v1}, Lname/mdp/quickvisionmode/MainActivity;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/view/accessibility/AccessibilityManager;
.line 20
.local v0, "am":Landroid/view/accessibility/AccessibilityManager;
const/4 v1, 0x1
invoke-static {v1}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
invoke-virtual {v0, v1}, Landroid/view/accessibility/AccessibilityManager;->setmDNIeNegative(Z)Z
(如果您知道即使在“未找到方法”的情况下也可以编译代码的方法,请发表!) ,它将起作用-不幸的是,它会触发
07-08 09:36:07.489:E / AndroidRuntime(20651):java.lang.RuntimeException:无法启动活动ComponentInfo {name.mdp.quickvisionmode / name.mdp.quickvisionmode.MainActivity}:java .lang.SecurityException:您不需要com.samsung.android.permission.CHANGE_DISPLAY_COLOR才能从pid = 20651,uid = 10310
调用setmDNIeNegative
但我已在清单中将许可设置为:
<?xml version="1.0" encoding="utf-8" standalone="no"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="name.mdp.quickvisionmode" platformBuildVersionCode="23" platformBuildVersionName="6.0-2438415">
<uses-permission android:name="com.samsung.android.permission.CHANGE_DISPLAY_COLOR"/>
<application android:allowBackup="true" android:debuggable="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme">
<activity android:label="@string/app_name" android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
</manifest>
有人可以看到错误吗?