我正在尝试开发一个小部件扩展,发送短信的自来水。这很好用,但我想确认短信是通过震动智能手表发送的。我可以从小部件扩展中启动可控震源吗?
据我所知,发送意图到主机应用程序应该足以开始振动。
在我的类扩展WidgetExtension onTouch中:
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage("124124512", null, "blaa", null, null); // Works fine
Intent intent = new Intent(Control.Intents.CONTROL_VIBRATE_INTENT);
intent.putExtra(Control.Intents.EXTRA_ON_DURATION, 1000);
intent.putExtra(Control.Intents.EXTRA_OFF_DURATION, 1000);
intent.putExtra(Control.Intents.EXTRA_REPEATS, 1);
intent.putExtra(Control.Intents.EXTRA_AEA_PACKAGE_NAME, mContext.getPackageName());
intent.setPackage(mHostAppPackageName);
context.sendBroadcast(intent, Registration.HOSTAPP_PERMISSION); // No vibration我还尝试创建单独的Vibrator类来扩展ControlExtension:
public class Vibrator extends ControlExtension{
public Vibrator(Context context, String hostAppPackageName) {
super(context, hostAppPackageName);
// TODO Auto-generated constructor stub
}
public void vibrate(){
startVibrator(1000, 1000, 1);
}
}并从窗口小部件扩展中触发振动,但没有任何效果。我忽略了什么吗?非常感谢!
发布于 2013-01-21 16:37:18
似乎在widget touch上启动振动的唯一方法是启动一个稀疏的ControlExtension:
小部件onTouch:
Intent intent = new Intent(Control.Intents.CONTROL_START_REQUEST_INTENT);
intent.putExtra(Control.Intents.EXTRA_AEA_PACKAGE_NAME, mContext.getPackageName());
sendToHostApp(intent);在RegistrationInformation中:
将getRquiredControlApiVersion设置为返回1。
在ExtensionService中添加:
@Override
public ControlExtension createControlExtension(String hostAppPackageName) {
return new Vibrator(hostAppPackageName, this);
}和Vibrator类:
public class Vibrator extends ControlExtension{
Vibrator(String hostAppPackageName, Context context){
super(context, hostAppPackageName);
}
@Override
public void onStart() {
vibrate();
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage("123456789", null, "BLAAA", null, null);
showBitmap(new SmartWatchSampleWidgetImage(mContext, 2).getBitmap());
}
@Override
public void onTouch(final ControlTouchEvent event) {
int action = event.getAction();
if (action == Control.Intents.TOUCH_ACTION_PRESS) {
}
}
public void vibrate(){
if(hasVibrator()){
startVibrator(1000, 500, 3);
}
}
}就能完成这项工作。
https://stackoverflow.com/questions/14413277
复制相似问题