| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 |
- package com.jld.vod.service
- import android.app.Service
- import android.content.Intent
- import android.os.Handler
- import android.os.IBinder
- import android.os.Message
- import android.view.WindowManager
- import com.google.gson.Gson
- import com.jld.vod.R
- import com.jld.vod.config.Config
- import com.jld.vod.model.bean.GEOAdvertBean
- import com.jld.vod.model.bean.ResultBean
- import com.jld.vod.model.event.ReceiveEvent
- import com.jld.vod.socket.ReceiveSocketManager
- import com.jld.vod.socket.SendSocketManager
- import com.jld.vod.utils.LogUtils
- import com.jld.vod.utils.SharedPrefUtils
- import com.jld.vod.utils.http.OkHttpUtils
- import com.jld.vod.view.SplashActivity
- import com.jld.vod.view.widget.CustomAdDialog
- import com.jld.vod.view.widget.CustomBlackBgDialog
- import com.jld.vod.view.widget.CustomGEOAdDialog
- import com.jld.vod.view.widget.CustomScreenAdDialog
- import okhttp3.Call
- import okhttp3.Response
- import org.greenrobot.eventbus.EventBus
- import org.greenrobot.eventbus.Subscribe
- import org.greenrobot.eventbus.ThreadMode
- import org.json.JSONObject
- import java.io.IOException
- /**
- * upd服务
- */
- class SocketService : Service() {
- private var sendSocketManager: SendSocketManager? = null
- private var receiveSocketManager: ReceiveSocketManager? = null
- private var mBgCustom : CustomBlackBgDialog? = null
- private var mGEOCustom : CustomScreenAdDialog? = null
- private var gson:Gson?= null
- private val BLACKBG : Int = 0x10
- private val GEOAD :Int = 0x11
- private val DISGEOAD :Int = 0x12
- private val mHandler = Handler(Handler.Callback { message ->
- when(message.what)
- {
- BLACKBG->{
- val msg = message.obj.toString()
- if (msg == "true")
- {
- if (mBgCustom == null)
- {
- mBgCustom = CustomBlackBgDialog(this)
- mBgCustom!!.getWindow()!!.setType((WindowManager.LayoutParams.TYPE_SYSTEM_ALERT));
- mBgCustom!!.show()
- }
- }else if(msg == "false")
- {
- if (mBgCustom != null)
- {
- mBgCustom!!.dismiss()
- mBgCustom = null
- }
- }
- }
- GEOAD->{
- val msgs = message.obj as GEOAdvertBean
- if (msgs.data != null)
- {
- if (mGEOCustom == null)
- {
- mGEOCustom = CustomScreenAdDialog(this)
- mGEOCustom!!.getWindow()!!.setType((WindowManager.LayoutParams.TYPE_SYSTEM_ALERT));
- }
- mGEOCustom!!.setDataList(msgs.data)
- mGEOCustom!!.show()
- }
- }
- DISGEOAD->{
- if (mGEOCustom != null)
- {
- mGEOCustom!!.dismiss()
- mGEOCustom = null
- }
- }
- }
- false
- })
- override fun onCreate() {
- EventBus.getDefault().register(this)
- receiveSocketManager = ReceiveSocketManager.getInstance(this)
- receiveSocketManager!!.startUdpConnection()
- //初始化gson
- gson = Gson()
- super.onCreate()
- }
- /**
- * 接收UDP广播
- */
- @Subscribe(threadMode = ThreadMode.MAIN)
- fun onReceive( action : ReceiveEvent?) {
- LogUtils.logD("接收广播"+action)
- if (action!!.data == null)return
- val jsonObject = JSONObject(action!!.data)
- try {
- val type = jsonObject.optString("type")
- val msg = jsonObject.optString("msg")
- when (type)
- {
- "CLOSE"->{
- receiveSocketManager!!.stopSocket()
- }
- Config.SCREEN->{
- val msgs = Message()
- msgs.what = BLACKBG
- msgs.obj = msg
- mHandler.sendMessage(msgs)
- }
- Config.ADS->{
- if (msg == "true")
- {
- initAdVert()
- }else if(msg == "false")
- {
- val msgs = Message()
- msgs.what = DISGEOAD
- mHandler.sendMessage(msgs)
- }
- }
- }
- }catch (e:Exception)
- {
- e.printStackTrace()
- }
- }
- /**
- * 初始化广告模块
- */
- private fun initAdVert() {
- OkHttpUtils.getInstance().getDataAsyn(Config.ApiBaseUrl+"/advert/findPositionAdvert",object : OkHttpUtils.MyNetCall{
- override fun failed(call: Call?, e: IOException?) {
- LogUtils.logE(e.toString())
- }
- override fun success(call: Call?, response: Response?) {
- val json = response!!.body!!.string()
- val mGEOAdvertBean= gson!!.fromJson(json, GEOAdvertBean::class.java)
- val msg = Message()
- msg.what = GEOAD
- msg.obj = mGEOAdvertBean
- mHandler.sendMessage(msg)
- }
- })
- }
- override fun onBind(intent: Intent?): IBinder? {
- return null
- }
- }
|