0

我正在为盲人制造一个设备。

我想重新使用低端 android 设备来完成这项任务。在我需要的硬件方面

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

我可以在各种设备上使用它,但最适合的是三星口袋,但它有一个我无法解决的问题。

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

是否有可能改变这种行为。我希望它在引导ROM中。我正在使用 update.zip (home/vol_up/power ...) 为口袋生根,所以我几乎可以在那里做任何事情,但我从未创建过自定义引导 rom。

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

我有点超出我的舒适区,所以非常感谢任何建议。

安德鲁

4

2 回答 2

0

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

于 2013-10-21T09:36:23.937 回答
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>

如果您有任何问题,请提出。希望能帮助到你。

于 2013-10-21T02:08:01.340 回答