相关疑难解决方法(0)

如何检测Android应用程序何时在模拟器中运行?

我希望我的代码在模拟器上运行时的运行方式与在设备上运行时的运行方式略有不同.(例如,使用10.0.2.2而不是公共URL自动针对开发服务器运行.)检测Android应用程序何时在模拟器中运行的最佳方法是什么?

android android-emulator

291
推荐指数
21
解决办法
10万
查看次数

Android获取设备区域设置

安装我的Android程序后,我检查设备区域设置:

String deviceLocale=Locale.getDefault().getLanguage();
Run Code Online (Sandbox Code Playgroud)

如果deviceLocale在我支持的语言(英语,法语,德语)内,我不会更改语言环境.

但是比如说如果我不支持设备的语言:例如西班牙语.
我将当前的语言环境设置为英语,因为大多数人可以部分理解英语.

Locale locale = new Locale("en");
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
pContext.getResources().updateConfiguration(config, null);
Run Code Online (Sandbox Code Playgroud)

但在那之后,在其他方法中,当我检查设备的语言环境时,如下所示:

String deviceLocale=Locale.getDefault().getLanguage();
Run Code Online (Sandbox Code Playgroud)

我得到的结果是"英语".但设备的区域设置是西班牙语.

getLanguage()是否提供当前应用的区域设置?
如何获取设备的区域设置?

编辑:在应用程序的首次运行中,它是一个保存设备区域设置的选项.但是如果用户在保存后更改设备区域设置,则无法知道设备的新区域设置.我只能知道我在app install中保存的语言环境.

android locale

39
推荐指数
3
解决办法
5万
查看次数

如何在Android Instrumentation测试中定义和使用系统属性?

我正在尝试使用一些参数进行Instrumentation测试.我注意到我可以通过System.getProperty()函数读取系统属性.所以我使用setprop命令设置系统属性.例如:adb shell setprop AP 123.在我的测试代码中,我尝试用以下内容读取此AP属性:


tmp = System.getProperty("AP"); 
Log.d("MyTest","AP Value = " + tmp);
Run Code Online (Sandbox Code Playgroud)

然后我使用logcat查看此调试消息,但我得到此属性的空值.关于什么可能出错的任何想法?请注意,我仍然可以使用adb shell getprop AP命令读取系统属性.

android adb

23
推荐指数
4
解决办法
5万
查看次数

从GLSurfaceView转换为TextureView(通过GLTextureView)

当Android 4.0(冰淇淋三明治)发布时,新的视图被引入到sdk中.这个视图是TextureView.在文档中,它表示TextureView可用于显示OpenGL场景的内容.

当您查找如何执行此操作时,您将找到一个示例链接.

https://groups.google.com/forum/?fromgroups=#!topic/android-developers/U5RXFGpAHPE

但是我想用TextureView替换GLSurfaceView,并保持我的其余代码相同,并且只是接受TextureView的优点.

android opengl-es google-tv

22
推荐指数
3
解决办法
1万
查看次数

从Android手机获取IMSI?

我正在开发一个需要获取IMSI的应用程序.我用:

TelephonyManager mTelephonyMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
String imsi = mTelephonyMgr.getSubscriberId();
Run Code Online (Sandbox Code Playgroud)

它适用于大多数手机,但一些手机只返回6位而不是15位.这是错误的.

任何人都知道以编程方式检索IMSI的另一种方法吗?其他APIS?方法?

问候

android

18
推荐指数
3
解决办法
4万
查看次数

TelephonyManger.getDeviceId()会返回像Galaxy Tab这样的平板电脑的设备ID吗?

我想获得每个Android设备唯一的设备ID.我目前正在开发平板电脑设备.想获得唯一的设备ID并存储相应的值...

所以,我想知道如果我使用TelephonyManager.getDeviceId()......,平板电脑设备是否会返回一个值?或者是否有任何其他值对每个设备唯一?

android tablet-pc

16
推荐指数
2
解决办法
3万
查看次数

使用Android从SIM卡获取MSISDN

我正在尝试使用Android从SIM中检索MSISDN,我尝试了getLine1Number(),但这只返回存储在"我的手机信息"或"所有者信息"部分中的MSISDN,如果未存储这些信息,Android将返回空值.

你知道从中有什么工作吗?或者有没有办法从SIM号(getSimSerialNumber())派生MSISDN ?

一如既往地等待坚实的答案!:)

mobile android eclipse-plugin msisdn

11
推荐指数
1
解决办法
4万
查看次数

isPowerSaveMode()始终为华为设备返回false

我目前正在实现一项功能,要求用户忽略应用程序的电池优化.这样做的原因是,应用程序的主要功能不幸受到省电模式的严重影响.

为了实现我的目标,我通过创建Intent和设置Actionto来提示用户ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS.

虽然在发射之前Intent,我都检查isPowerSaveMode()isIgnoringBatteryOptimizations()确保在没有启用省电模式时不提示用户; 这是该功能的要求.我这样做的方式是:

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
boolean isPowerSaveMode = pm.isPowerSaveMode(); // always returns false for Huawei devices
Run Code Online (Sandbox Code Playgroud)

这适用于大多数设备,但对于华为设备,isPowerSaveMode()始终返回false.因此,由于前提条件失败,因此永远不会显示提示.

还有其他人可能遇到过这个问题吗?如果是这样,你做了什么来解决它?

需要注意的是,Xamarin.AndroidSDK中也存在同样的问题.

android xamarin.android powermanager

10
推荐指数
2
解决办法
1221
查看次数

从代码中获取Android WiFi"net.hostname"

当Android设备连接到wifi AP时,它会使用以下名称标识自己:

android_cc1dec12345e6054

如何从Android应用程序中获取该字符串?不是为了改变它,只是为了读出.

编辑:
这是我的路由器的Web界面的屏幕截图,显示了所有连接设备的列表.请注意列表中的两个Android设备 - 如何从设备上运行的Java代码中读取该字符串?

路由器的连接列表

android android-wifi

7
推荐指数
3
解决办法
2万
查看次数

无法在Android中使用Reflection或Linux命令exec在Android中设置系统属性

我需要设置并获取名为"persist.sys.aabbcc"的系统属性.我能够使用adb shell命令读取/写入值,如下所示:

adb shell setprop persist.sys.aabbcc 123456
Run Code Online (Sandbox Code Playgroud)

和:

adb shell getprop persist.sys.aabbcc 
123456
Run Code Online (Sandbox Code Playgroud)

我还可以使用Reflection在java Android中读取此属性:

        @SuppressWarnings("rawtypes")
        Class SystemProperties = Class.forName("android.os.SystemProperties");

        //Parameters Types
        @SuppressWarnings("rawtypes")
        Class[] paramTypes = new Class[1];
        paramTypes[0] = String.class;

        Method get = SystemProperties.getMethod("get", paramTypes);

        //Parameters
        Object[] params = new Object[1];
        params[0] = new String("persist.sys.aabbcc");

        ret = (String) get.invoke(SystemProperties, params);
Run Code Online (Sandbox Code Playgroud)

或者使用Linux命令exec:

            try
            {              
                String line;
                java.lang.Process p = Runtime.getRuntime().exec("getprop persist.sys.aabbcc");              
                BufferedReader input = new BufferedReader(new   InputStreamReader(p.getInputStream()));
                while ((line = input.readLine()) != null)
               {
                    System.out.println(line);
                    Log.d("HelloDroid", line);           
                }
                input.close();
            } …
Run Code Online (Sandbox Code Playgroud)

android

6
推荐指数
2
解决办法
2万
查看次数

android如何获取紧急电话号码

我看到有很多关于如何拨打号码的例子,我也看到我只能让它弹出拨号器去拨打紧急号码.但在所有这些例子中,他们硬编码"911"作为使用的数字.好吧,这在美国运作良好,但由于Android手机在其他国家销售,因此有可能我的应用程序将由不在美国的人购买,或者住在美国的人可能将他们的手机带到海外; 有没有办法然后我的应用程序可以意识到它不在美国,因此必须使用不同的号码来呼叫紧急服务,这个号码将是什么?

总而言之,我想知道我是否有办法可以实现这一点,所以当应用程序用拨打该国家的紧急号码拨打拨号器时,不必在编译时知道该号码?

android phone-call phone-number

5
推荐指数
1
解决办法
4235
查看次数

如何导入android.os.SystemProperties

我正在尝试使用

SystemProperties.get();
Run Code Online (Sandbox Code Playgroud)

但是无法导入android.os.SystemPropertiesgoogling包的位告诉我它的隐藏,有什么方法可以解决这个问题吗?

android

5
推荐指数
1
解决办法
3万
查看次数

如何获取 build.prop 值?

如何获取build.prop/system/build.prop没有 root 访问权限的情况下找到的值?我如何编辑它们?

android

4
推荐指数
2
解决办法
3万
查看次数