Wednesday, 30 December 2015

Lock phone Programmatically android


    Here I am going to explain how to lock our phone Programmatically in android.



   

                                 




Step 1).MainActivity.java

import android.app.admin.DevicePolicyManager;
import android.content.ComponentName;
import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;


public class MainActivity extends AppCompatActivity {

    private DevicePolicyManager devicePolicyManager = null;
    private ComponentName componentName = null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

      componentName = new ComponentName(this, AdminReceiver.class);
      devicePolicyManager =(DevicePolicyManager)
                                       getSystemService(DEVICE_POLICY_SERVICE);
      lock();                                                                                                            FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view)
            {

                devicePolicyManager.lockNow();

            }
        });
    }
    public void lock()
    {

             Intent intent =new Intent
                 (DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
             intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,                                                                                           componentName);
             intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,"");
                
             startActivity(intent);

    }

}

Step 2).AdminReceiver.java

import android.app.admin.DeviceAdminReceiver;

public class AdminReceiver extends DeviceAdminReceiver
{


}


Step 3).Register receiver in your Manifest file


      <receiver
            android:name="AdminReceiver"
            android:permission="android.permission.BIND_DEVICE_ADMIN">
            <meta-data
                android:name="android.app.device_admin"
                android:resource="@xml/device_admin" />

            <intent-filter>
             <action  
                android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
             </intent-filter>
        </receiver>
   
      <uses-feature
        android:name="android.software.device_admin"
        android:required="true" />

Happy Coding:)