获取手机内存信息和SD卡信息差不多,只不过是用的File路径不同,见代码:
 /**
     * 这个是手机内存的可用空间大小 
     */
    static public long getAvailableInternalMemorySize() {
            File path = Environment.getDataDirectory();
            StatFs stat = new StatFs(path.getPath());
            long blockSize = stat.getBlockSize();
            long availableBlocks = stat.getAvailableBlocks();
            return availableBlocks * blockSize/1024/1024;//M
        }    /**
     * 
     *这个是手机内存的总空间大小
     */
        static public long getTotalInternalMemorySize() {
            File path = Environment.getDataDirectory();
            StatFs stat = new StatFs(path.getPath());
            long blockSize = stat.getBlockSize();
            long totalBlocks = stat.getBlockCount();
            return totalBlocks * blockSize/1024/1024;//M
        }

解决方案 »

  1.   

     File path = Environment.getDataDirectory();
    就是这句
      

  2.   


    插上手机看不到 data 下的东西  没有办法看我是不是写就去东西了啊··
        郁闷·
      

  3.   


    这个 在模拟器上是可以啊···但是真机你就打不开data的目录啊·
      

  4.   

    这个目录我知道啊····但是真机上你连上数据线也不可以打开data下的东西啊····
      

  5.   

     
    package com.bcf;import java.io.BufferedInputStream;
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.net.HttpURLConnection;
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.net.URLConnection;import android.app.Activity;
    import android.content.Intent;
    import android.net.Uri;
    import android.os.Bundle;
    import android.util.Log;
    import android.widget.Toast;public class AutoDownloadSetupAPK extends Activity {
     /** Called when the activity is first created. */
     @Override
     public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      String urls="http://android.d.cn/rm/2/978/6228/?http://c.downandroid.com/android/new/game1/29/110029/ucweb_1.apk";
      setContentView(R.layout.main);
      String tempFileType=urls.substring(urls.lastIndexOf("."),urls.length());
      String tempFileName=urls.substring(urls.lastIndexOf("/")+1,urls.lastIndexOf("."));
      String tempUrl=urls.substring(0, urls.lastIndexOf("/")+1);
      File file=downLoadFile(tempUrl,tempFileName,tempFileType);
      openFile(file);
     } protected File downLoadFile(String httpUrl,String fileNames,String fileType) {
      // TODO Auto-generated method stub
      //final String fileName = "spring.mp3";
      final String fileName = chineseToHexString(fileNames)+fileType;
      File tmpFile = new File("/sdcard/");
      if (!tmpFile.exists()) {
       tmpFile.mkdir();
      }
      final File file = new File("/sdcard/" + fileName);  try {
       URL url = new URL(httpUrl+fileName);
       try {
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        InputStream is = conn.getInputStream();
        FileOutputStream fos = new FileOutputStream(file);
        byte[] buf = new byte[256];
        conn.connect();
        double count = 0;
        if (conn.getResponseCode() >= 400) {
         Toast.makeText(AutoDownloadSetupAPK.this, "连接超时", Toast.LENGTH_SHORT)
         .show();
        } else {
         while (count <= 100) {
          if (is != null) {
           int numRead = is.read(buf);
           if (numRead <= 0) {
            break;
           } else {
            fos.write(buf, 0, numRead);
           }      } else {
           break;
          }     }
        }    conn.disconnect();
        fos.close();
        is.close();
       } catch (IOException e) {
        // TODO Auto-generated catch block    e.printStackTrace();
       }
      } catch (MalformedURLException e) {
       // TODO Auto-generated catch block   e.printStackTrace();
      }
      return file;
     }
     //打开APK程序代码 private void openFile(File file) {
      // TODO Auto-generated method stub
      Log.e("OpenFile", file.getName());
      Intent intent = new Intent();
      intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
      intent.setAction(android.content.Intent.ACTION_VIEW);
      intent.setDataAndType(Uri.fromFile(file),
      "application/vnd.android.package-archive");
      startActivity(intent);
     }
     
     public String chineseToHexString(String str){
            Toast.makeText(getApplicationContext(), str, Toast.LENGTH_LONG).show();
            if(str==null || str.length()<=0){
                return "";
            }
            byte[] a=str.getBytes();  
            StringBuffer sb = new StringBuffer();
            for(int i=0; i<a.length; i++){
                sb.append(Integer.toHexString((256+a[i])%256) + " ");
            }
            String tempSb=sb.toString();
            tempSb=tempSb.replace(" ", "%");
            tempSb="%"+tempSb.substring(0, tempSb.lastIndexOf("%"));
            return tempSb;
        }}     <!-- 访问internet权限 -->
     <uses-permission android:name="android.permission.INTERNET"/>
     <!-- 在SDCard中创建与删除文件权限 -->
     <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
     <!-- 往SDCard写入数据权限 -->
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
      

  6.   

    Process process = null;
    try {
    process = Runtime.getRuntime().exec("reboot");
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }