Android - 代码片段

转载说明

本篇文章可能已经更新,最新文章请转:http://www.sollyu.com/android-code-snippets/

说明

此篇文章为个人日常使用所整理的一此代码片段,此篇文正将会不定时更新

代码

评价应用

activity.startActivity(new Intent(Intent.ACTION_VIEW,Uri.parse("market://details?id=" + activity.getPackageName())));

获得系统分享列表

/**
 * 获得系统分享列表
 * @param context
 * @return
 */
public static List< ResolveInfo > getShareApps ( Context context )
{
    Intent intent = new Intent ( Intent.ACTION_SEND, null );
    intent.addCategory ( Intent.CATEGORY_DEFAULT );
    intent.setType ( "*/*" );
    PackageManager pManager = context.getPackageManager ();
    return pManager.queryIntentActivities ( intent, PackageManager.COMPONENT_ENABLED_STATE_DEFAULT );
//        for ( int i = 0; i < resolveInfos.size (); i++ )
//        {
//            AppInfoVo appInfoVo = new AppInfoVo ();
//            ResolveInfo resolveInfo = resolveInfos.get ( i );
//            appInfoVo.setAppName ( resolveInfo.loadLabel ( packageManager ).toString () );
//            appInfoVo.setIcon ( resolveInfo.loadIcon ( packageManager ) );
//            appInfoVo.setPackageName ( resolveInfo.activityInfo.packageName );
//            appInfoVo.setLauncherName ( resolveInfo.activityInfo.name );
//            appInfoVos.add ( appInfoVo );
//        }
//        return appInfoVos;
}

获得当前IP地址

HttpUtils.GetHtml ( "http://1111.ip138.com/ic.asp", null, new HttpUtils.HttpUtilsCallBack ()
{
    @Override
    public void OnFinish ( HttpResponse httpResponse, int resultCode, String resultString )
    {
        Pattern p = Pattern.compile ( "\\[(.+)\\]" );
        Matcher m = p.matcher ( resultString );
        if ( m.find () )
        {
            String ipAddress = m.group ( 1 );
            LogUtils.OutputDebugString ( ipAddress );
        }
    }

    @Override
    public void OnError ( Exception e )
    {
        LogUtils.OutputDebugString ( e );
    }
} );

获得当前Activity的根视图

/**
 * 获得当前Activity的根视图
 * @param activity
 * @return
 */
public static ViewGroup GetContentView(Activity activity)
{
    return ( ViewGroup ) ( ( ViewGroup ) activity.findViewById ( android.R.id.content ) ).getChildAt ( 0 );
}

打开应用

public static void OpenApp(Context context, String packageName_)
{
    try
    {
        Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null);
        resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER);
        resolveIntent.setPackage(context.getPackageManager().getPackageInfo(packageName_, 0).packageName);

        List<ResolveInfo> apps = context.getPackageManager().queryIntentActivities(resolveIntent, 0);

        ResolveInfo ri = apps.iterator().next();
        if (ri != null)
        {
            String packageName = ri.activityInfo.packageName;
            String className = ri.activityInfo.name;

            Intent intent = new Intent(Intent.ACTION_MAIN);
            intent.addCategory(Intent.CATEGORY_LAUNCHER);

            ComponentName cn = new ComponentName(packageName, className);

            intent.setComponent(cn);
            context.startActivity(intent);
        }
    }
    catch (PackageManager.NameNotFoundException e)
    {
        e.printStackTrace();
    }
}

打开URL

public static void OpenUrl(Context context, String url)
{
    android.content.Intent intent = new android.content.Intent();
    intent.setAction("android.intent.action.VIEW");
    intent.setData(android.net.Uri.parse(url));
    context.startActivity(intent);
}

public static void OpenUrl(Context context, int url)
{
    android.content.Intent intent = new android.content.Intent();
    intent.setAction("android.intent.action.VIEW");
    intent.setData(android.net.Uri.parse(context.getString(url)));
    context.startActivity(intent);
}

创建桌面快捷方式

public static void CreateShortcut(Context context, String appName, Class<?> startClass, int icon)
{
    Intent shortcut = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");
    shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, appName);
    shortcut.putExtra("duplicate", false);// 设置是否重复创建
    Intent intent = new Intent(Intent.ACTION_MAIN);
    intent.addCategory(Intent.CATEGORY_LAUNCHER);
    intent.setClass(context, startClass);// 设置第一个页面
    shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, intent);
    Intent.ShortcutIconResource iconRes = Intent.ShortcutIconResource.fromContext(context, icon);
    shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconRes);
    context.sendBroadcast(shortcut);
}

分享图片到微信朋友圈

public static void shareMultiplePictureToTimeLine ( Context context, File... files )
{
    Intent intent = new Intent ();
    ComponentName comp = new ComponentName ( "com.tencent.mm", "com.tencent.mm.ui.tools.ShareToTimeLineUI" );
    intent.setComponent ( comp );
    intent.setAction ( Intent.ACTION_SEND_MULTIPLE );
    intent.setType ( "image/*" );

    ArrayList< Uri > imageUris = new ArrayList< Uri > ();
    for ( File f : files )
    {
        imageUris.add ( Uri.fromFile ( f ) );
    }
    intent.putParcelableArrayListExtra ( Intent.EXTRA_STREAM, imageUris );

    context.startActivity ( intent );
}

状态栏透明

/**
 * 设置状态栏透明
 * @param activity
 */
public static void TranslucentStatus(Activity activity)
{
    if ( android.os.Build.VERSION.SDK_INT > 18 )
    {
        Window window = activity.getWindow ();
        window.setFlags ( WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS    , WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS     );
        window.setFlags ( WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION, WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION );
    }
}

ProgressDialogLoading

public static void ProgressDialogLoading ( final Context context, final ProgressDialogLoadingCallBack progressDialogLoadCallBack )
{
    final ProgressDialog progressDialog = new ProgressDialog ( context );
    progressDialogLoadCallBack.onInit ( context, progressDialog );
    new Thread ( new Runnable ()
    {
        @Override
        public void run ()
        {
            progressDialogLoadCallBack.onRun ( context, progressDialog );
            progressDialog.dismiss ();
        }
    } ).start ();
}

public static interface ProgressDialogLoadingCallBack
{
    public void onInit ( Context context, ProgressDialog progressDialog );

    public void onRun ( Context context, ProgressDialog progressDialog );
}

ImageView 设置图片

ImageView.setImageResource(R.drawable.icon);

杀死对应的Android程序

/**
 * 杀死对应的Android程序,而不会自动启动
 * @param pkgName 应用程序的包名
 */
public static void forceStopAPK ( String pkgName ) throws Exception
{
    Process sh = Runtime.getRuntime ().exec ( "su" );
    DataOutputStream os = new DataOutputStream ( sh.getOutputStream () );
    final String Command = "am force-stop " + pkgName + "\n";
    os.writeBytes ( Command );
    os.flush ();

    sh.waitFor ();
}

备注

时间: 2024-11-01 09:39:11

Android - 代码片段的相关文章

Android代码片段

1.拨打电话 1 2 3 public static void call(Context context, String phoneNumber) { context.startActivity(new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phoneNumber))); } 2.跳转至拨号界面 1 2 3 public static void callDial(Context context, String phoneNumber

实用的Android代码片段集合(精)

1.        精确获取屏幕尺寸(例如:3.5.4.0.5.0寸屏幕) public static double getScreenPhysicalSize(Activity ctx) { DisplayMetrics dm = new DisplayMetrics(); ctx.getWindowManager().getDefaultDisplay().getMetrics(dm); double diagonalPixels = Math.sqrt(Math.pow(dm.widthP

【Android代码片段之八】监听Android屏幕是否锁屏

实现方法:1)通过BroadcastReceiver接收广播Intent.ACTION_SCREEN_ON和Intent.ACTION_SCREEN_OFF可以判断屏幕状态是否锁屏,但是只有屏幕状态发生改变时才会发出广播: 2)如果要在屏幕状态发生改变之前就想获取屏幕状态,可以通过反射机制调用PowerManager的isScreenOn方法 . 具体实现,见代码: 实现Screen状态监听的类ScreenObserver,实现如下: [java] view plaincopy package 

Android课程---Android Studio使用小技巧:提取方法代码片段

这篇文章主要介绍了Android Studio使用小技巧:提取方法代码片段,本文分享了一个快速复制粘贴方法代码片段的小技巧,并用GIF图演示,需要的朋友可以参考下 今天来给大家介绍一个非常有用的Studio Tips,有些时候我们在一个方法内部写了过多的代码,然后想要把一些代码提取出来再放在一个单独的方法里,通常我们的做法是复制粘贴,现在我来教给大家一个非常简洁的方法,先看下gif演示吧:

Android官方入门文档[16]创建一个Fragment代码片段

Android官方入门文档[16]创建一个Fragment代码片段 Creating a Fragment创建一个Fragment代码片段 This lesson teaches you to1.Create a Fragment Class2.Add a Fragment to an Activity using XML You should also read?Fragments 这节课教你1.创建一个Fragment代码片段类2.使用XML来添加一个Fragment代码片段给一个活动 你也

android有用代码片段(一)

有时候,需要一些小的功能,找到以后,就把它贴到了博客下面,作为留言,查找起来很不方便,所以就整理一下,方便自己和他人. 一.  获取系统版本号: PackageInfo info = this.getPackageManager().getPackageInfo(this.getPackageName(), 0); int versionCode=nfo.versionCode string versionName=info.versionNam 二.获取系统信息: <span style=&quo

android 实用代码片段整理

android 常用代码片段,前1-10条是从网上摘录,向原作者致谢.后面为自己整理. 1.设置窗口格式为半透明 getWindow().setFormat(PixelFormat.TRANSLUCENT); 2.Android中在非UI线程里更新View的不同方法: * Activity.runOnUiThread( Runnable ) * View.post( Runnable ) * View.postDelayed( Runnable, long ) * Hanlder 3.全屏显示窗

[转]Android适配器之ArrayAdapter、SimpleAdapter和BaseAdapter的简单用法与有用代码片段

收藏ArrayAdapter.SimpleAdapter和BaseAdapter的一些简短代码片段,希望用时方便想起其用法. 1.ArrayAdapter 只可以简单的显示一行文本 代码片段: [java] view plaincopy ArrayAdapter<String> adapter = new ArrayAdapter<String>( this, R.layout.item,//只能有一个定义了id的TextView data);//data既可以是数组,也可以是Li

Android适配器之ArrayAdapter、SimpleAdapter和BaseAdapter的简单用法与有用代码片段(转)

摘自:http://blog.csdn.net/shakespeare001/article/details/7926783 收藏ArrayAdapter.SimpleAdapter和BaseAdapter的一些简短代码片段,希望用时方便想起其用法. 1.ArrayAdapter 只可以简单的显示一行文本 代码片段: [java] view plaincopy ArrayAdapter<String> adapter = new ArrayAdapter<String>( this