package com.bell.floatlayoutdemo;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import android.provider.Settings;
import android.support.v7.app.AppCompatActivity;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//当AndroidSDK>=23及Android版本6.0及以上时,需要获取OVERLAY_PERMISSION.
//使用canDrawOverlays用于检查,下面为其源码。其中也提醒了需要在manifest文件中添加权限.
/**
* Checks if the specified context can draw on top of other apps. As of API
* level 23, an app cannot draw on top of other apps unless it declares the
* {@link android.Manifest.permission#SYSTEM_ALERT_WINDOW} permission in its
* manifest, <em>and</em> the user specifically grants the app this
* capability. To prompt the user to grant this approval, the app must send an
* intent1 with the action
* {@link android.provider.Settings#ACTION_MANAGE_OVERLAY_PERMISSION}, which
* causes the system to display a permission management screen.
*
*/
if (Settings.canDrawOverlays(MainActivity.this)) {
Intent intent1 = new Intent(MainActivity.this, MainService.class);
startService(intent1);
finish();
} else {
//若没有权限,提示获取.
Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);
Toast.makeText(MainActivity.this, "需要取得权限以使用悬浮窗", Toast.LENGTH_SHORT).show();
startActivity(intent);
finish();
}
}
@Override
protected void onDestroy() {
super.onDestroy();
}
}