java - Android 广播接收器的问题

标签 java android broadcastreceiver

我多次发现这个问题,但似乎没有一个解决方案有效。

list 中有以下内容:

<receiver android:name=".noactivity.Airplane">
        <intent-filter>
            <action android:name="android.intent.action.AIRPLANE_MODE_CHANGED"/>
        </intent-filter>
</receiver>

还有下面的类:

public class Airplane extends BroadcastReceiver {

public Airplane(){
}

@Override
public void onReceive(Context context, Intent intent) {
    Log.d("AirplaneMode", "Service state changed");
    Toast.makeText(context,"Airplane mode changed",Toast.LENGTH_LONG).show();
}}

但是如果我改变飞行模式,什么也不会发生。可以肯定的是,我还添加了:

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    registerReceiver(new Airplane(), new IntentFilter("android.intent.action.AIRPLANE_MODE_CHANGED"));
}}

什么也不起作用。 你们有人知道我做错了什么吗?

最佳答案

我没有在 list 中添加接收器就成功地使用了它。 在你的 Activity 中添加:

    @Override
protected void onResume() {

    //register receiver for air plane mode states
    IntentFilter airPlaneModeFilter = new IntentFilter(Intent.ACTION_AIRPLANE_MODE_CHANGED);
    registerReceiver(airPlaneModeReceiver, airPlaneModeFilter);

    super.onResume();
}

private BroadcastReceiver airPlaneModeReceiver = new BroadcastReceiver() {@Override
    public void onReceive(Context context, Intent intent) {
        boolean airPlaneModeEnabled = intent.getBooleanExtra("state", false);
        if (airPlaneModeEnabled) {

} else {

}
    }
};

@Override
protected void onPause() {
    if (airPlaneModeReceiver != null) unregisterReceiver(airPlaneModeReceiver);

    super.onPause();
}

关于java - Android 广播接收器的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54438270/

相关文章:

java - jasypt ZeroSaltGenerator在Spring + Hibernate中生成不同的加密字符串

Java字符串到不同格式的日期转换

java - Android 新手 - 无法从服务器响应中提取 token

android - 加快 Android Studio 中的运行过程

android - 在 Redmi 7A (MIUI 11) 上找不到 'Take Bug Report' 选项

android - 从开始日期到结束日期重复本地通知,并且一天内重复 1-4 次 Android

没有数据结构的 Java Graph 实现

java - Android - 调用对象时崩溃

java - 用于在 Android 应用程序中检查互联网连接的广播接收器

android - 如何始终收听短信android