আমি একটি অ্যাপ্লিকেশন যেখানে আমি কিছু তথ্য সহ একটি উইন্ডো প্রদর্শনের জন্য প্রয়োজন কাজ করছি অন ফোন আনলক ছাড়া স্ক্রিন লক করুন (কীগার্ডে)। আমি অনুভব করেছি যে আমি সম্ভবত এটি উইন্ডো ম্যানেজ.লয়আউটপ্যারামস দিয়ে করতে পারি T
তবে প্রতিবার আমার অ্যাপ্লিকেশনটি নিম্নলিখিত ত্রুটির সাথে ক্র্যাশ হয়ে গেছে:
android.view.WindowManager $ BadTokenException: উইন্ডো android.view.ViewRootImplootW@40ec8528 যুক্ত করতে অক্ষম - এই উইন্ডো প্রকারের জন্য অনুমতি অস্বীকার
এই পোস্টগুলি ( এখানে , এখানে এবং এখানে) ) সমস্ত একই উত্তর দেয়। ম্যানিফেস্ট ফাইলটিতে নিম্নলিখিত অনুমতি যুক্ত করতে।
android.permission.SYSTEM_ALERT_WINDOW
সমাধানটি আমি প্রয়োগ করেছি তবে আমি এখনও একই ত্রুটি পাচ্ছি। আমি কি ভুল করছি এর কোন ধারণা?
আমার প্রকাশিত ফাইলে অনুমতিগুলি এখানে রয়েছে:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.droidpilot.keyguardwindow" >
<uses-sdk
android:minSdkVersion="16"
android:targetSdkVersion="21" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.VIBRATE" />
এবং আমি লক স্ক্রিনে উইন্ডোটি যুক্ত করতে এই কোডটি ব্যবহার করি
WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
LayoutInflater mInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mView = mInflater.inflate(R.layout.lock_screen_notif, null);
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG,
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
| WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
| WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,
PixelFormat.TRANSLUCENT
);
wm.addView(mView, params);
কেউ ধারণা পেয়েছে?
পিএস আমি একটি এইচটিসি ডিজায়ার 620 ডিএসে অ্যান্ড্রয়েড 4.4.2 চালাচ্ছি testing