如果你是搜这个标题进来的,其实你和我一样走进了误区,一开始觉得监听自己的应用屏幕旋转很简单,怎么监听别人的呢?其实都是一个道理。设备旋转了,手机上所有的应用都接受的是同一个通知。那我们自己应用能接受到,当然也能接收到其他应用屏幕旋转的信息喽。很简单。
第一步,先写个广播接收者。
override fun onReceive(context: Context, intent: Intent?) {
//横 2 竖屏1
Log.d("dddd","屏幕旋转"+context.resources.configuration.orientation)
}
返回写个接口,返回出去就好了。因为我的是悬浮球,需要知道屏幕是否旋转了,而改变靠边的位置。
写了个广播。在activity里的onCreate里启动这个广播接收器就好了
val broadcastReceive = MyScreenOrientReceive()
val filter = IntentFilter()
filter.addAction(Intent.ACTION_CONFIGURATION_CHANGED)
registerReceiver(broadcastReceive,filter)
就这样了。
记得加上权限
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION" tools:ignore="ProtectedPermissions" />