电源打开后,让Android手机振动

时间:2013-10-21 00:55:51

标签: android vibrate

我正在为盲人构建一个设备。

我想为这项任务重新设计低端Android设备。在我需要的硬件方面

  • 单个物理主页按钮(用于启动互动,其他一切都通过语音输入
  • 完成
  • 合理的麦克风和扬声器
  • 合理数量的cpu和内存
  • rootable(我们需要root才能执行关闭设备的事情)
  • 3G数据

我有各种各样的设备,但最合适的是三星口袋,但它有一个我无法解决的问题。

当用户启动设备时,它不会提供任何非视觉反馈。大多数设备在打开电源时都会振动。盲人需要能够确定他们按住按钮的时间足够长。口袋不提供任何非视觉反馈,如果你长时间按下它,它会更糟糕。

是否可以更改此行为。我希望它在启动ROM中。我使用update.zip(home / vol_up / power ...)来支持口袋,所以我几乎可以做任何事情,但我从未创建过自定义引导ROM。

我注意到它预装了odin,如果这样可以更容易

我有点偏离了我的舒适区,所以非常感谢任何建议。

安德鲁

2 个答案:

答案 0 :(得分:0)

这是你需要的。像这个片段一样创建BroadCastReceiver

public class MyBroadcastReceiver extends BroadcastReceiver{

@Override
public void onReceive(Context context, Intent intent) {


                Intent it = new Intent(); 
                it.setAction("your.package.name.MyBroadcastReceiver");
                context.startService(it); //Start a service

}

}

并将此添加到您的清单中:

<receiver android:name="your.package.name.MyBroadcastReceiver" >
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" >
            </action>

            <category android:name="android.intent.category.HOME" >
            </category>
        </intent-filter>
    </receiver>

然后创建一个像这样的服务

public class YourService extends Service {



@Override
public void onStart(Intent intent, int startId) {
    super.onStart(intent, startId);



    Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
    long[] pattern = { 0, 300, 0 };
    v.vibrate(pattern, 0); // Use this to vibrate

    // rdlVibrator.cancel(); Use this to stop the vibration


}

@Override
public IBinder onBind(Intent intent) {
    // TODO Auto-generated method stub
    return null;
}

}

最后将此添加到您的清单文件中:

 <service
        android:name="your.package.name.YourService"
        android:process=":my_process" >
        <intent-filter>
            <action android:name="your.package.name.YourService" >
            </action>
        </intent-filter>
    </service>

如果您有任何问题,请询问。希望它有所帮助。

答案 1 :(得分:0)

您可以创建BroadCast接收器,当手机开机时,它会被调用并调用OnReceive方法,您可以编写启用设备振动的代码。