編輯:關於Android編程
Android剛興起的時候,著實讓一些小眾軟件火了一把,切水果,Tom貓,吹裙子就是其中的代表,當然還有實用性很強的關機重啟軟件,我們去百度上搜索一下。
截圖:
一.了解CMD 命令
我們在cmd下進行的操作什麼的,這裡就不一一細說了我們只要知道下面這幾條命令就可以了
重啟:su -c reboot
關機:reboot -p
有了這個思路,我們就可以去實現了
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="clip_vertical" android:orientation="vertical" android:padding="15dp" > <Button android:id="@+id/btn_reboot" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="15dp" android:background="@drawable/btn_bg" android:text="重啟" /> <Button android:id="@+id/btn_power" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="15dp" android:background="@drawable/btn_bg" android:text="關機" /> <Button android:id="@+id/btn_recovery" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="15dp" android:background="@drawable/btn_bg" android:text="recovery" /> <Button android:id="@+id/btn_finish" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="15dp" android:background="@drawable/btn_bg" android:text="退出" /> </LinearLayout>
MainActivity
package com.lgl.power; import java.io.DataOutputStream; import java.io.IOException; import android.app.Activity; import android.app.AlertDialog; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class MainActivity extends Activity implements OnClickListener { private Button btn_reboot, btn_power, btn_recovery, btn_finish; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); } private void initView() { btn_reboot = (Button) findViewById(R.id.btn_reboot); btn_reboot.setOnClickListener(this); btn_power = (Button) findViewById(R.id.btn_power); btn_power.setOnClickListener(this); btn_recovery = (Button) findViewById(R.id.btn_recovery); btn_recovery.setOnClickListener(this); btn_finish = (Button) findViewById(R.id.btn_finish); btn_finish.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { // 重啟 case R.id.btn_reboot: // cmd命令 String cmd = "su -c reboot"; try { // 發送請求 Runtime.getRuntime().exec(cmd); } catch (IOException e) { new AlertDialog.Builder(MainActivity.this).setTitle("很抱歉") .setMessage("你的手機未ROOT,無法實現該功能!") .setPositiveButton("OK", null).show(); } break; // 關機 case R.id.btn_power: try { // 獲取管理員權限su Process process = Runtime.getRuntime().exec("su"); // 輸入命令 DataOutputStream out = new DataOutputStream( process.getOutputStream()); out.writeBytes("reboot -p\n"); // 結束 out.writeBytes("exit\n"); out.flush(); } catch (IOException e) { new AlertDialog.Builder(MainActivity.this).setTitle("很抱歉") .setMessage("你的手機未ROOT,無法實現該功能!") .setPositiveButton("OK", null).show(); } break; // recovery case R.id.btn_recovery: try { // 同關機原理 Process process = Runtime.getRuntime().exec("su"); DataOutputStream out = new DataOutputStream( process.getOutputStream()); out.writeBytes("reboot recovery\n"); out.writeBytes("exit\n"); out.flush(); } catch (IOException e) { new AlertDialog.Builder(MainActivity.this).setTitle("很抱歉") .setMessage("你的手機未ROOT,無法實現該功能!") .setPositiveButton("OK", null).show(); } break; // 退出 case R.id.btn_finish: finish(); break; } } }
還等什麼?趕緊去試試吧吧,因為我們是直接取得su權限發送腳本命令,所以我們並不需要其他的權限.
關於Android下的CMD命令之關機重啟及重啟recovery的相關知識就給大家介紹到這裡,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對本站網站的支持!
android的L新版本中增加了“打擾”的新功能,相信很多同學搞不明白。找了一篇介紹勿擾模式很好的文章,可惜是英文的,現翻譯如下,相
運行效果 產生原理自定義一組字符數組,隨機在裡面挑選出自己想要產生的驗證碼個數的字符,用畫筆畫入自己定義的BitMap中,然後在隨機畫入干擾線條,當然繪制時的一
簡介:PullToRefresh是一款支持ListView,GridView,ViewPager,ScrollView,WebView等一切可以拖動,並實現
先占個位置,下次翻譯~ :p During normal app use, the foreground activity is sometimes obstruct