首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用振动器时,即使hasVibrator()返回true,应用程序也会崩溃

使用振动器时,即使hasVibrator()返回true,应用程序也会崩溃
EN

Stack Overflow用户
提问于 2017-05-05 08:46:51
回答 1查看 580关注 0票数 2

我正在开发一个涉及振动的小应用程序,每当调用vibrate()函数时,应用程序就会崩溃。堆栈跟踪链接回带有文本"Vibrator: Failed to vibrate“的vibrator.vibrate()行。振动器。还有几个DeadObjectExceptionsRuntimeExceptions都链接到安卓类。这只会在一些手机上发生,而在其他手机上,它工作得很完美。

hasVibrator()返回true,可控震源对象不为空,而且手机有一个可控震源,所以我不知道出了什么问题。也许我试图在创建可控震源对象后过快地振动,或者我在onCreate()方法中过快地创建了可控震源对象?

下面是我使用vibrate()方法的那部分代码:

代码语言:javascript
运行
复制
//vibrate only if exists
if (vibrating) 
{
    long[] pattern = {0, power, target - power};
    try 
    {
        vibrator.vibrate(pattern, 0);
    } 
    catch (Exception e) 
    {
        vibrating = false;
    }
}
EN

回答 1

Stack Overflow用户

发布于 2017-05-05 09:05:02

假设您使用的是getSystemService,那么您可以期望获得服务,或者如果该类不是受支持的系统服务,则为null。

现在,既然你说你在不同的设备上得到了某些异常,你就可以捕获这些异常。

代码语言:javascript
运行
复制
Vibrator vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);

if(vibrator != null)
{
    try
    {
       long[] pattern = { 0, 200, 500 };
       vibrator.vibrate(pattern, 0);
    }
    catch(DeadObjectExceptions e)
    {
        e.printStackTrace();
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43794819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档