create Guest User from Shell - Android Android OS

Android examples for Android OS:Shell

Description

create Guest User from Shell

Demo Code

/*/*from  w  w  w .j a  v a2  s.com*/
 * Copyright 2014 Great Bytes Software
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
//package com.java2s;

import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;

import android.util.Log;

public class Main {
    public static String TAG = "TerminalUtils";
    private static final int BUFF_LEN = 4096;

    public static int createGuestUser() {
        Process p;
        try {
            p = Runtime.getRuntime().exec("su");
            DataOutputStream os = new DataOutputStream(p.getOutputStream());

            os.writeBytes("pm create-user \"guest\"\n");
            os.writeBytes("exit\n");
            os.flush();

            InputStream is = p.getInputStream();
            byte[] buffer = new byte[BUFF_LEN];
            int read;
            String out = new String();
            //read method will wait forever if there is nothing in the stream
            while (true) {
                read = is.read(buffer);
                out += new String(buffer, 0, read);
                if (read < BUFF_LEN) {
                    //we have read everything
                    break;
                }
            }

            //Log.i(TAG, "out: " + out);

            if (out.contains("Success:")) {
                out = out.replace("\n", "").replace("\r", "");
                String[] strUserId = out.split("id ");
                //Successfully created new user
                int userId = Integer.valueOf(strUserId[1]);
                return userId;
            } else {
                //Multiuser feature is enabled
                return -1;
            }
        } catch (IOException e) {
            Log.e(TAG, "createGuestUser IOException: " + e.getMessage());
        } catch (Exception e) {
            Log.e(TAG, "createGuestUser Exception: " + e.getMessage());
        }

        return -1;
    }
}

Related Tutorials