少年辛苦终身事,莫向光阴惰寸功。这篇文章主要讲述Android 应用开机自启和无需权限开启悬浮框相关的知识,希望能为你提供帮助。
【Android 应用开机自启和无需权限开启悬浮框】开机自启主要自定义广播接收类,且需要在清单文件中注册,不要在代码中动态注册。
< uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> < uses-permission android:name="android.permission.BROADCAST_STICKY"/>
< receiver android:name=".***"> < intent-filter> < action android:name="android.intent.action.BOOT_COMPLETED"/> < category android:name="android.intent.category.LAUNCHER"/> < /intent-filter> < /receiver> < service android:name=".***"/>
开始编写广播接收器:
public class MyBroadcastRecevice extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")){ // TODO: 2016/9/18 context.startService(new Intent(context,***)); } } }
再看来看看在服务中启动悬浮框的代码:
/** * 创建悬浮框 */ public void createFloatingBoxView() { wmParams = ((AppContext) getApplication()).getMywmParams(); mWindowManager = (WindowManager) getApplication().getSystemService( Application.WINDOW_SERVICE); wmParams.type = WindowManager.LayoutParams.TYPE_TOAST; wmParams.format = PixelFormat.RGBA_8888; wmParams.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS; wmParams.gravity = Gravity.TOP | Gravity.LEFT; wmParams.x = 0; wmParams.y = 0; wmParams.width = WindowManager.LayoutParams.WRAP_CONTENT; wmParams.height = WindowManager.LayoutParams.WRAP_CONTENT; floatingBoxView = new FloatingBoxView(getApplicationContext(),this); mWindowManager.addView(floatingBoxView, wmParams); //这两行负责监听的,别理他 floatingBoxView.setMoveListener(this); floatingBoxView.setAllClickListener(this); }
推荐阅读
- 安卓手机运行fedora
- Android : apk系统签名的多种方法
- pandas数组(pandas Series)-apply方法自定义函数
- android app使用微信登录接口回调没有被执行的问题研究
- Computer Networking: A Top Down Approach
- Android之Fragment的优点和作用
- Android Service初解
- MapReduce (基于 FileInputFormat 的 mapper 数量控制)
- android(Android中用文件初始化sqlite数据库)