gpt4 book ai didi

android - 无法在 Moto Android 设备上获取数据漫游状态?

转载 作者:行者123 更新时间:2023-11-30 02:05:36 26 4
gpt4 key购买 nike

我需要访问 Moto 设备 (5.0.1) 上的数据漫游状态

if (Settings.Secure.getInt(context.getContentResolver(),Settings.Secure.DATA_ROAMING) == 1) {
//Data Roaming Enabled
flag = true;
} else {
// Data Roaming Disabled
flag = false;
}

我在使用摩托罗拉设备时发现了这个问题。此设备中的安全设置位于 android.provider.MotorolaSettings.Secure 中,而在其他设备中则为 android.provider.Settings.Secure

是否有解决此问题的方法或任何其他获取漫游状态的方法?

最佳答案

这里有一个解决方案,使用反射来检查 Motorola 类是否可用。如果它们不在这里,您需要使用默认的 api,然后在可用系统上调用 getInt

无法在摩托罗拉设备上对其进行测试。

public static boolean isEnabled(Context context){

Class<?> baseSettingsClass = null;

// Retrieve the 'default' settings api
try {
if (android.os.Build.VERSION.SDK_INT >= 17){
baseSettingsClass = Class.forName( "android.provider.Settings$Global");
}
else{
baseSettingsClass = Class.forName( "android.provider.Settings$Secure" );
}
}catch(Exception e){}

Class<?> secureClass = null;


// Try retrieve the motorola class
try{
secureClass = Class.forName("com.motorola.android.provider.MotorolaSettings$Secure" );
}catch(Exception e){}


// If it failed, use the 'default' api class
if (secureClass == null){
if (baseSettingsClass != null){
secureClass = baseSettingsClass;
}
else{
return false;
}
}

try {
// Retrieve the getInt method
Method getIntMethod = secureClass.getDeclaredMethod("getInt", ContentResolver.class, String.class);

// Execute getInt(context.getContentResolver(), Settings.Secure.DATA_ROAMING)
int result = (Integer) (getIntMethod.invoke(null, context.getContentResolver(), (String)baseSettingsClass.getField("DATA_ROAMING").get(null)));

return result == 1;

} catch (Exception e) {
e.printStackTrace();
}

return false;
}

关于android - 无法在 Moto Android 设备上获取数据漫游状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30709138/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com