public boolean isTabletDevice() {  

            TelephonyManager telephony = (TelephonyManager) getContext().getSystemService(Context.TELEPHONY_SERVICE);  

            int type = telephony.getPhoneType();  

            if (type == TelephonyManager.PHONE_TYPE_NONE) {  

                return true;  

            } else {  

                return false;  

            }  

        }  

2、到android设置中的卸载界面

Uri uri = Uri.fromParts("package", appInfo.packageName, null);       

Intent it=new Intent();  

it.setAction("android.settings.APPLICATION_DETAILS_SETTINGS");  

it.setData(uri);  

startActivity(it); 

3、获取屏幕上正在显示的Activity

ActivityManager mActivityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);

ComponentName mComponentName = mActivityManager.getRunningTasks(1).get(0).topActivity; 

4、如何判断一个activity是否存在于系统中

    Intent intent = new Intent();  

    intent.setClassName("包名", "类名");        

    if(getPackageManager().resolveActivity(intent, 0) == null) {  

        //说明系统中不存在这个activity  

    }  

5、如何获取状态栏和标题栏的高度

获取状态栏高度:



decorView是window中的最顶层view,可以从window中获取到decorView,然后decorView有个 getWindowVisibleDisplayFrame方法可以获取到程序显示的区域,包括标题栏,但不包括状态栏。于是,我们就可以算出状态栏的高度。



Rect frame = new Rect();  

getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);  

int statusBarHeight = frame.top; 



获取标题栏高度: 



getWindow().findViewById(Window.ID_ANDROID_CONTENT)这个方法获取到的view就是程序不包括标题栏的部分,然后就可以知道标题栏的高度了。 



    int contentTop = getWindow().findViewById(Window.ID_ANDROID_CONTENT).getTop();  

    //statusBarHeight是上面所求的状态栏的高度  

    int titleBarHeight = contentTop - statusBarHeight;  

6、如何判断快捷方式是否已经创建

 快捷方式信息是保存在com.android.launcher的launcher.db的favorites表中 



 boolean isInstallShortcut = false ;  

    final ContentResolver cr = context.getContentResolver();  

    final String AUTHORITY = "com.android.launcher.settings";  

    final Uri CONTENT_URI = Uri.parse("content://" +  

                     AUTHORITY + "/favorites?notify=true");  

      

    Cursor c = cr.query(CONTENT_URI,  

    new String[] {"title","iconResource" },  

    "title=?",  

    new String[] {"XXX" }, null);//XXX表示应用名称。  

            if(c!=null && c.getCount()>0){  

        isInstallShortcut = true ;  

    }  

    /*try { 

        while (c.moveToNext()) { 

                                    String tmp = ""; 

            tmp = c.getString(0); 

        } 

        } catch (Exception e) { 

 

        } finally { 

            c.close(); 

        }*/  

    return isInstallShortcut ;  

}  

要有权限:
<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS"/>
注意:2.2及其之后的版本不能用这个方法判断!(虽然在launcher.db数据库里还有favorites这个表)

7、如何在android的一个应用中调用另外一个应用

Intent intent = new Intent();  

//第一个参数另一个应用的包名,第二个是需要启动的类  

intent.setComponent(new ComponentName("com.Ex03_03","com.Ex03_03.Ex03_03"));  

startActivity(intent);

8、如何监测是否静音

    AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE);   

    switch (am.getRingerMode()) {   

        case AudioManager.RINGER_MODE_SILENT:   

            Log.i("MyApp","Silent mode");   

            break;   

        case AudioManager.RINGER_MODE_VIBRATE:   

            Log.i("MyApp","Vibrate mode");   

            break;   

        case AudioManager.RINGER_MODE_NORMAL:   

            Log.i("MyApp","Normal mode");   

            break;   

    }