2013-01-17 103 views
1

我已经编写了一个小测试应用程序(借助Stack Overflow中给出的先前实现的示例),它将打开我平板电脑上的通知LED。当我在平板电脑上测试此应用程序时,它不能按需要工作,即LED会打开很短的时间(而不是我在程序中提到的5秒钟)。我猜想它需要系统默认值的持续时间,LED需要开/关,而不是采取我的应用程序中指定的值。有没有人看过类似的问题?有没有办法让我重写这个系统特定的值?我的代码如下:如何覆盖指示灯亮起时的系统默认值

public class SampleActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_sample); 
    RedFlashLight(); 
} 

private void RedFlashLight() 
{ 
    NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 
    Notification notif = new Notification(); 
    notif.ledARGB = Color.RED; 
    notif.flags = Notification.FLAG_SHOW_LIGHTS ; 
    notif.ledOnMS = 5000; //5 seconds 
    notif.ledOffMS = 0; //do not turn it off 
    nm.notify(10, notif); 
} 


} 

回答

1

有没有办法让我重写此系统特定的值?

超越你已经在做什么?

熊号记:

  • 并非所有的设备都有LED指示灯
  • 不就是有LED将一定要用他们的通知
  • 设备制造商,否则可以忽略Notification请求的所有设备对象,如LED的颜色

所以,你可以问任何你想要的,你是否得到它将取决于设备。

+0

我看到了,我在我的摩托罗拉手机上测试了这个应用程序,它工作正常,但是在摩托罗拉的XYboard上它不起作用。那么这意味着相同的制造商和不同的硬件行为是不同的?有没有其他方法可以使LED长时间保持开启状态? – sim

+0

@ user1932046您甚至可能以不同的版本制造商提供的固件在同一设备上执行不同的操作。不幸的是,你丝毫不能依赖它。 – Kitsune

+0

@ user1932046:“那么这意味着相同的制造商和不同硬件的行为是不同的?” - 当然。甚至在固件更新之前和之后,相同的设备可能会有不同的表现。 LED行为完全取决于设备制造商。你只能提出可能会或可能不会被尊重的事情。 “有没有其他方法可以让LED长时间持续亮起?” - 不,对不起。再次,请记住,许多设备根本没有LED。 – CommonsWare