2012-10-25 12 views
17

मैं एक सुरक्षा अनुप्रयोग विकसित कर रहा हूं, जिससे कोई उपयोगकर्ता फ़ोन नंबर डायल करता है जिसे अक्सर नहीं कहा जाता है और उसने पहले कभी नहीं कहा है, तो उपयोगकर्ता को खुद को पुनः प्रमाणित करना होगा। इस उद्देश्य के लिए मैं फोन नंबर की जांच के बाद फोन लॉक करना चाहता हूं।उपयोगकर्ता के फोन को डायल करने के बाद एंड्रॉइड फोन लॉक करें

public class outgoingCalls extends BroadcastReceiver { 

public void onReceive(Context context, Intent intent) { 

    Log.v("onReceive", "In onReceive()"); 
    if (confidence == 0) { 
     Log.v("onReceive","confidence zeroed"); 
     Intent i = new Intent(); 
     i.setClassName("abc.xyz.SECURITY","abc.xyz.SECURITY.lockActivity"); 
     i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     context.startActivity(i); 
    } 
} 

इस नई गतिविधि lockActivity में, मैं फोन मैं कहाँ टिप्पणी की है // लॉक को फ़ोन

public class lockActivity extends Activity { 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    Log.v("lock","lockActivity onCreate method called"); 
     // setContentView(R.layout.main); 
     Log.v("lock","locking"); 
// LOCK PHONE 
} 
} 

फोन तरीकों मैंने कोशिश की है के साथ बंद नहीं हो रही है लॉक करने के लिए की जरूरत है। इनमें निम्नलिखित शामिल हैं:

1. KeyguardManager mgr = (KeyguardManager) getSystemService(Activity.KEYGUARD_SERVICE); 
KeyguardLock lock = mgr.newKeyguardLock("edu.Boston.SECURITY.lockActivity"); 
((KeyguardLock) lock).reenableKeyguard(); 

2. PowerManager manager = (PowerManager) getSystemService(Context.POWER_SERVICE); 
manager.goToSleep(100);//int amountOfTime 

3. PowerManager.WakeLock wl = manager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "Tag"); 
wl.acquire(); 
wl.release(); 

4. WindowManager.LayoutParams params = getWindow().getAttributes(); 
    params.screenBrightness = 0; 
    getWindow().setAttributes(params); 

Android मेनिफेस्ट फ़ाइल अनुमतियों

<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" /> 
    <uses-permission android:name="android.permission.READ_CONTACTS"/> 
    <uses-permission android:name="android.permission.DISABLE_KEYGUARD"/> 
    <uses-permission android:name="android.permission.WAKE_LOCK" /> 

नीचे है मेरे पास फ़ोन लॉक नहीं कर रहा हूँ? कोई संकेतक? आपकी मदद के लिए अग्रिम धन्यवाद। इसकी प्रशंसा करना!

+1

http://stackoverflow.com/questions/3820307/how-to-terminate-a-call-programmatically -under-android - किसी ने कहा कि प्रगति कॉल में समाप्त करना संभव नहीं है। क्या यह सच है ? क्या यह कारण हो सकता है कि मैं डिवाइस को लॉक नहीं कर सकता या कम से कम कॉल को समाप्त कर सकता हूं? – user1773209

+0

हम ** setResultData (शून्य) ** का उपयोग कर डायल किए गए कॉल को समाप्त कर सकते हैं। –

+1

क्या यह 'आपके पूर्व नशे में नहीं है' kinda ऐप? : डी – Shark

उत्तर

2

एक DevicePolicyManager

http://developer.android.com/training/enterprise/device-management-policy.html

और बनाने का प्रयास करें तो फोन:

DevicePolicyManager mDPM = (DevicePolicyManager)context.getSystemService(Context.DEVICE_POLICY_SERVICE); 
mDPM.lockNow(); 
+0

टेक्नोजेनी - यह कुछ हद तक काम करता है .. मेरे मामले में जब मैं कॉल करता हूं तो स्क्रीन काला हो जाती है और स्क्रीन लॉक हो जाती है लेकिन मुझे अनलॉक करने के लिए लॉक स्क्रीन नहीं दिखाई दे रही है .. जब मैं अपने फोन के शीर्ष पर लॉक बटन पर क्लिक करता हूं तो यह कॉल करने के लिए अनलॉक करता है और कमाता है। अभी भी डिबगिंग .. लेकिन आपकी मदद के लिए बहुत बहुत धन्यवाद और मुझे यह अब तक मिल रहा है! धन्यवाद!! – user1773209

+0

मैंने पाया कि क्या हो रहा है यह है कि कॉल अभी भी किया जा रहा है लेकिन कॉल समाप्त होने के बाद फोन लॉक हो रहा है। तो यह काम करता है, मुझे बस कॉल को बाधित करने और कॉल समाप्त करने के लिए कोड को सही स्थान पर रखने की आवश्यकता है .. – user1773209

संबंधित मुद्दे