我正在为盲人构建一个设备。
我想为这项任务重新设计低端Android设备。在我需要的硬件方面
我有各种各样的设备,但最合适的是三星口袋,但它有一个我无法解决的问题。
当用户启动设备时,它不会提供任何非视觉反馈。大多数设备在打开电源时都会振动。盲人需要能够确定他们按住按钮的时间足够长。口袋不提供任何非视觉反馈,如果你长时间按下它,它会更糟糕。
是否可以更改此行为。我希望它在启动ROM中。我使用update.zip(home / vol_up / power ...)来支持口袋,所以我几乎可以做任何事情,但我从未创建过自定义引导ROM。
我注意到它预装了odin,如果这样可以更容易
我有点偏离了我的舒适区,所以非常感谢任何建议。
安德鲁
答案 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方法,您可以编写启用设备振动的代码。