कई उपयोगकर्ताओं के साथ डिवाइस पर सत्र लॉगआउट?


10

उपयोगकर्ताओं के बीच स्विच करने का विकल्प है, लेकिन सक्रिय उपयोगकर्ता सत्र से लॉगआउट करने का विकल्प नहीं है। निष्क्रिय उपयोगकर्ताओं (एक बार लॉग इन और स्विच आउट) के लिए बैकग्राउंड ऐप और सेवाएं बैटरी को चलाने के लिए चलती रहती हैं।

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

तो, क्या ऐसा कोई तरीका है जिससे मालिक बाद के निष्क्रिय उपयोगकर्ताओं को अपने सत्र के लॉगआउट के लिए मजबूर कर सके? मेरे पास स्वामी के साथ सुपरयुसर पहुंच है android-5.0.2

जवाबों:


7

एंड्रॉइड पर एक टर्मिनल ऐप में, दर्ज करें (रूट एक्सेस की आवश्यकता है):

su
am stop-user USER_ID

जैसे एक अतिथि उपयोगकर्ता के लिए, USER_IDमेरे डिवाइस में 11इसका कमांड है am stop-user 11

am stop-user एकाधिक इनपुट को संसाधित नहीं करता है, इसलिए आप हर उस माध्यमिक उपयोगकर्ता के लिए कमांड निष्पादित करें जिसे आप रोकना चाहते हैं।

यह डिवाइस को पुनरारंभ करने से थोड़ा अलग है। यदि आप amउपयोग देखेंगे तो आप देखेंगे;

am stop-user: stop execution of USER_ID, not allowing it to run any code until a later explicit start or switch to it.

जैसा कि कहा गया है, यह केवल उस उपयोगकर्ता खाते से संबंधित सभी गतिविधियों को रोक देता है, इसलिए जब भी कोई स्पष्ट शुरुआत या स्विच प्रदान किया जाता है, तो आपका सत्र खरोंच से शुरू होने के बजाय फिर से शुरू होगा।

यह पुष्टि करने के लिए कि उपयोगकर्ता वास्तव में रुका हुआ है या नहीं चल रहा है, मेरा उत्तर देखें ADB से वर्तमान में चल रहे उपयोगकर्ता नाम / आईडी का पता कैसे लगाएं ?

संक्षेप में, pm list usersया dumpsys activityआपको बताएगा कि उपयोगकर्ता है RUNNINGया नहीं SHUTDOWN। बाद वाला आदेश बेहतर है। यदि उपयोगकर्ता-सत्र वास्तव में रोक दिया गया है am stop-user, तो आप mState=SHUTDOWNउस उपयोगकर्ता को देखेंगे । हालाँकि, यदि उपयोगकर्ता रिबूट के बाद भी एक बार भी सक्रिय नहीं हुआ है, तो आपको इसकी कोई प्रविष्टि नहीं दिखाई देगी।


जैसा मैंने कहा am stopuser 10कि केवल pm list usersकमांड दिखा रहा था क्योंकि उपयोगकर्ता नहीं चल रहा था। मैं जाँच की adb shell psके बाद am stop-user 10और पा सकते हैं u10_axxप्रक्रिया चल। यह जांचने के लिए कि क्या वे रुके हुए हैं, मैंने 2 उपयोगकर्ता पर एक टर्मिनल में एक शेल स्क्रिप्ट चलाने की कोशिश की। स्क्रिप्ट प्रत्येक सेकंड (दूसरा प्रदर्शित करते हुए) एक प्रतिध्वनी बयान को लूप करती है। इस स्क्रिप्ट को शुरू करने के बाद, am stop-user 10कमांड का उपयोग करते हुए , 5min की प्रतीक्षा कर रहा है और दूसरे उपयोगकर्ता सत्र को फिर से शुरू कर रहा है, मैं कह सकता हूं कि स्क्रिप्ट रुकी नहीं है। यह पूरे समय तक चलता रहा।
भरत जी

एंड्रॉइड 5.0.2 के 2 उपयोगकर्ता में एप्लिकेशन (टर्मिनल) स्थापित करने के लिए मैंने जिस विधि का उपयोग किया है वह है adb install -r app.apk। अगर यह मुद्दा है पता नहीं है।
Bharat G

अगर मैं आपकी टिप्पणियों के लिए कुछ प्रासंगिक हूं तो मैं आपको अपडेट करूंगा।
Firelord

1
मैंने दोस्त के डिवाइस पर उसी कमांड को चेक किया है android-5.1.1और यह कहा गया है। मैंने स्क्रिप्ट भाग की जाँच नहीं की है, लेकिन जारी करने पर am stop-user 10, दूसरे उपयोगकर्ता की सभी प्रक्रियाएं मार दी गईं और कमांड में Settings > Appsया उसके साथ सूचीबद्ध नहीं हैं ps। तो, यह तरीका है, लेकिन android-5.0.2वर्तमान में या तो इस कमांड के साथ छोटी गाड़ी है, या ऐसी कार्यक्षमता उस संस्करण के रूप में लागू नहीं होती है जो मुझे लगता है। लेकिन 5.1 में अभी तक स्विच करने के लिए मेरे पास अधिक असहनीय कीड़े हैं। धन्यवाद :)
भरत जी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.