我想按下某个组合键来实现我的BroadcastReceiver
(如果我从键盘上拨打1234),我的BroadcastReceiver
将被呼叫。我可以通过它开展我的活动吗?
以下是我如何解决此问题
以下是我如何解决此问题
public class MyKeypadListener extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)) {
String number = getResultData();
if (number!=null) {
if(number.equals("1234")){
setResultData(null);
Intent newintent = new Intent(context,SettingsActivity.class);
newintent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(newintent);
}
}
}
}
}
并且在清单中我添加了..
**<receiver android:name=".receivers.MyKeypadListener">
<intent-filter >
<action android:name="android.intent.action.NEW_OUTGOING_CALL"/>
<action android:name="android.intent.action.PHONE_STATE"/>
</intent-filter>
</receiver>**
答案 0 :(得分:2)
以下是我修复此问题的方法:
public class MyKeypadListener extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)) {
String number = getResultData();
if (number!=null) {
if(number.equals("1234")){
setResultData(null);
Intent newintent = new Intent(context,SettingsActivity.class);
newintent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(newintent);
}
}
}
}
}
在清单中我添加了:
<receiver android:name=".receivers.MyKeypadListener">
<intent-filter >
<action android:name="android.intent.action.NEW_OUTGOING_CALL"/>
<action android:name="android.intent.action.PHONE_STATE"/>
</intent-filter>
</receiver>
答案 1 :(得分:0)
您必须为要输入这些组合的编辑文本实施TextWatcher。此API有一些回调方法,您可以轻松检查您的组合。