监听开关机,发送广播

来源:互联网 发布:计量经济学软件 编辑:程序博客网 时间:2024/06/06 02:38
/**        监听开关机,发送广播 */public class BroadcastFragment extends BaseFragment implements View.OnClickListener {    private static final String KEY_TO_Activity = "com.dyc.test.TO_Activity";    private FirstBroadCast firstBroadcast;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);    }    @Override    public void initViews(ViewGroup rootView) {        Button firstsend = (Button) rootView.findViewById(R.id.sendfirst);        IntentFilter inf = new IntentFilter(KEY_TO_Activity);        firstBroadcast = new FirstBroadCast();        getContext().registerReceiver(firstBroadcast, inf);        firstsend.setOnClickListener(this);    }    @Override    public int getLayoutId() {        return R.layout.fragment_broadcast;    }    @Override    public void setViews() {    }    @Override    public void onDestroy() {        super.onDestroy();        getContext().unregisterReceiver(firstBroadcast);    }    @Override    public void onClick(View view) {        if (view.getId() == R.id.sendfirst) {
//发送广播            getContext().sendBroadcast(new Intent(KEY_TO_Activity));        }    }    class FirstBroadCast extends BroadcastReceiver {        @Override        public void onReceive(Context context, Intent intent) {            L.v(FirstBroadCast.class, "has recive first class");            Toast.makeText(context, "show toast has recive your send", Toast.LENGTH_SHORT).show();        }        }    public static class ShutDownReciver extends BroadcastReceiver{        @Override        public void onReceive(Context context, Intent intent) {            L.v(ShutDownReciver.class,"recive shutDown ");        }    }    public static  class BootCompleteBroadcastReciver extends BroadcastReceiver {        @Override        public void onReceive(Context context, Intent intent) {            Toast.makeText(context,"recive boot complete",Toast.LENGTH_SHORT).show();;            L.v(BootCompleteBroadcastReciver.class, "has recive boot complete ");        }    }}
//权限
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>
//注册
<receiver android:name="com.dyc.test.fragment.BroadcastFragment$BootCompleteBroadcastReciver">    <intent-filter >        <action android:name="android.intent.action.BOOT_COMPLETED"></action>    </intent-filter></receiver><receiver android:name=".fragment.BroadcastFragment$ShutDownReciver">    <intent-filter>        <action android:name="android.intent.action.ACTION_SHUTDOWN"></action>    </intent-filter></receiver><receiver android:name="com.dyc.test.fragment.MessageFragment$AutoSMS" android:exported="false">    <intent-filter android:priority="1000">        <action android:name="android.provider.Telephony.SMS_RECEIVED"/>    </intent-filter></receiver>

非常好用。
                                             
0 0