【发布时间】:2016-02-24 13:25:09
【问题描述】:
我有一个扩展 Service 的类。
public class CustomService extends Service {
private ImageView chatHead;
private WindowManager.LayoutParams params ;
private ImageView iv;
@Override
public void onCreate() {
super.onCreate();
iv = new ImageView(this);
bitmap = BitmapFactory.decodeResource(getResources(), ...);
bitmap = Bitmap.createScaledBitmap(...);
iv.setImageBitmap(bitmap);
//INITIALIZE FROM SCREEN DIMENSIONS
windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
//PARAMETERS
params= new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_PHONE,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT);
params.gravity = Gravity.TOP | Gravity.LEFT;
params.x = 0;
params.y = mHeight - chatHeadRadius ;
windowManager.addView(iv, params); // HERE WE HAVE THE CRASH
}
}
我以这种方式从我的 mainActivity 创建服务:
startService(new Intent(getApplication(), MyService.class));
这段代码在运行 Android 4 和 5 的设备上运行良好。但是当我尝试在 Marshmallow 上运行它时,我遇到了崩溃。
我必须通知你,我已经尝试过授权
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
在我的 Manifest 文件中,但它没有解决问题。
有什么想法吗?
【问题讨论】:
标签: java android-service android-6.0-marshmallow