Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Android

एंड्रॉइड में स्क्रीन रिकॉर्डिंग कैसे रोकें?

एंड्रॉइड में FLAG_SECURE से स्क्रीन रिकॉर्डिंग/कैप्चर रोकना

यह उदाहरण दिखाता है कि `WindowManager.LayoutParams.FLAG_SECURE` फ्लैग का उपयोग करके ऐप की स्क्रीन को रिकॉर्डिंग, स्क्रीनशॉट और कास्टिंग से कैसे सुरक्षित किया जाता है।

चरण 1: नया प्रोजेक्ट बनाएं

Android Studio में File → New Project चुनकर नया प्रोजेक्ट बनाएं।

चरण 2: लेआउट XML

res/layout/activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    android:id="@+id/rlMain"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="16dp"
    android:orientation="vertical">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="स्क्रीन रिकॉर्डिंग सुरक्षित ऐप"
        android:textSize="20sp"
        android:textStyle="bold"
        android:layout_marginBottom="20dp" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="इस स्क्रीन का स्क्रीनशॉट या रिकॉर्डिंग नहीं लिया जा सकता"
        android:textSize="16sp" />

</LinearLayout>

चरण 3: MainActivity में FLAG_SECURE सेट करें

MainActivity.java:

package app.com.sample;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.WindowManager;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        // ⚡ महत्वपूर्ण: setContentView() से पहले कॉल करें!
        getWindow().setFlags(
            WindowManager.LayoutParams.FLAG_SECURE,
            WindowManager.LayoutParams.FLAG_SECURE
        );
        
        setContentView(R.layout.activity_main);
    }
}

🔑 FLAG_SECURE क्या करता है?

फीचरप्रभाव
स्क्रीनशॉटब्लॉक - काली/खाली इमेज सेव होती है
स्क्रीन रिकॉर्डिंगब्लॉक - काला वीडियो रिकॉर्ड होता है
रिमोट डिस्प्ले/कास्टिंगब्लॉक - कास्टिंग डिवाइस पर काला दिखता है
हाल के ऐप्स प्रीव्यूब्लर/काला थंबनेल दिखता है
Accessibility सेवाएंकुछ सेवाएं कंटेंट नहीं पढ़ पातीं

⚠️ सीमाएं और विचार

  • केवल वर्तमान विंडो: फ्लैग केवल उस एक्टिविटी की विंडो पर लागू होता है जहां सेट किया गया है
  • डायलॉग/पॉपअप: अलग विंडो वाले डायलॉग के लिए अलग से सेट करना पड़ता है
  • सिस्टम UI: स्टेटस बार, नेविगेशन बार प्रभावित नहीं होते
  • रूट/कस्टम ROM: रूटेड डिवाइस पर बायपास संभव है
  • एक्सेसिबिलिटी: दृष्टिबाधित उपयोगकर्ताओं की सेवाएं प्रभावित हो सकती हैं

🎯 विशिष्ट विंडो के लिए (डायलॉग, बॉटम शीट)

// AlertDialog के लिए
AlertDialog dialog = builder.create();
dialog.getWindow().setFlags(
    WindowManager.LayoutParams.FLAG_SECURE,
    WindowManager.LayoutParams.FLAG_SECURE
);
dialog.show();

// BottomSheetDialog के लिए
BottomSheetDialog dialog = new BottomSheetDialog(this);
dialog.getWindow().setFlags(
    WindowManager.LayoutParams.FLAG_SECURE,
    WindowManager.LayoutParams.FLAG_SECURE
);

📱 पूरी ऐप के लिए (BaseActivity में)

public class BaseActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // सभी एक्टिविटीज के लिए सुरक्षा सक्षम करें
        getWindow().setFlags(
            WindowManager.LayoutParams.FLAG_SECURE,
            WindowManager.LayoutParams.FLAG_SECURE
        );
        super.onCreate(savedInstanceState);
    }
}

चरण 4: Manifest

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="app.com.sample">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

        <activity android:name=".MainActivity" android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

🧪 टेस्ट करना

  1. ऐप इंस्टॉल करें और खोलें
  2. प्ले स्टोर से कोई स्क्रीन रिकॉर्डर ऐप इंस्टॉल करें (जैसे AZ Screen Recorder)
  3. रिकॉर्डिंग शुरू करें
  4. ऐप पर नेविगेट करें
  5. रिकॉर्डिंग रोकें और वीडियो देखें - ऐप का भाग काला/खाली होगा
  6. स्क्रीनशॉट लेने का प्रयास करें (पावर + वॉल्यूम डाउन) - काली इमेज सेव होगी

💡 वैकल्पिक: MediaProjection API से रिकॉर्डिंग डिटेक्ट करना

यदि आप रिकॉर्डिंग डिटेक्ट करके प्रतिक्रिया देना चाहते हैं (ब्लॉक नहीं):

// MediaProjectionManager से एक्टिव रिकॉर्डिंग चेक करें
MediaProjectionManager mpm = (MediaProjectionManager) getSystemService(MEDIA_PROJECTION_SERVICE);
// नोट: सीधे डिटेक्शन API नहीं है, लेकिन कॉलबैक रजिस्टर कर सकते हैं

ऐप चलाएं

डिवाइस कनेक्ट करें, Run पर क्लिक करें। किसी भी स्क्रीन रिकॉर्डर से रिकॉर्ड करने पर ऐप का कंटेंट काला दिखाई देगा।

  1. 5 आसान चरणों में अपने iPhone XR पर स्क्रीन रिकॉर्डिंग में महारत हासिल करें 5 आसान चरणों में अपने iPhone XR पर स्क्रीन रिकॉर्डिंग में महारत हासिल करें

    अपने नॉन-टेक-सेवी दोस्त को अपने iPhone पर स्क्रीन रिकॉर्ड करके अपने टेक कौशल दिखाना चाहते हैं? आप अपने कूल iPhone XR पर इन-बिल्ट स्क्रीन रिकॉर्डर फीचर का उपयोग करके यह सब कर सकते हैं। हर iPhone में एक इनबिल्ट स्क्रीन रिकॉर्डिंग एप्लिकेशन होता है लेकिन केवल कुछ ही इसके बारे में जानते हैं। इसके कारण थ

  1. अपनी एंड्रॉइड स्क्रीन को पीसी पर सहजता से मिरर करें: सरल चरण-दर-चरण मार्गदर्शिका अपनी एंड्रॉइड स्क्रीन को पीसी पर सहजता से मिरर करें: सरल चरण-दर-चरण मार्गदर्शिका

    आपके एंड्रॉइड फोन पर आपकी शादी की तस्वीरें या पसंदीदा फिल्म हैं और आप उन्हें बड़ी स्क्रीन पर देखना चाहते हैं? आप कैसे आगे बढ़ेंगे? आप क्या करेंगे? खैर, समाधान एंड्रॉइड टू पीसी की स्क्रीन मिररिंग है! हां, स्क्रीन साझा करके, आप अपने दोस्तों और परिवार के साथ अपनी पसंदीदा फिल्में देख सकते हैं। इस पोस्ट

  1. ऑटो स्टॉप फीचर के साथ स्क्रीन रिकॉर्डिंग को निर्बाध रूप से रोकने का तरीका ऑटो स्टॉप फीचर के साथ स्क्रीन रिकॉर्डिंग को निर्बाध रूप से रोकने का तरीका

    स्क्रीन रिकॉर्डिंग व्यक्तिगत और पेशेवर दोनों रूप से बहुत से लोगों की मदद कर रही है, चाहे उन्हें यूट्यूब वीडियो के लिए अपनी स्क्रीन रिकॉर्ड करने की आवश्यकता हो या सोशल मीडिया पर साझा करने के लिए एक महत्वपूर्ण मीटिंग या गेम कैप्चर करने की। परिणामस्वरूप, इस संदर्भ में ऑटो स्टॉप रिकॉर्डिंग शब्द भी उतना