当前位置: 代码迷 >> Android >> Android惯用代码集合
  详细解决方案

Android惯用代码集合

热度:57   发布时间:2016-04-28 07:32:12.0
Android常用代码集合

这篇文章主要记录一些常用的一些代码段,方便以后查阅,不断更新中。

1:调用浏览器,载入某网址


1

2

3

Uri uri = Uri.parse("http://www.android-study.com");        

Intent it = new Intent(Intent.ACTION_VIEW, uri);        

startActivity(it);

2:Broadcast接收系统广播的intent监控应用程序包的安装、删除


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

public class getBroadcast extends BroadcastReceiver {

    @Override

    public void onReceive(Context context, Intent intent) {

        if (Intent.ACTION_PACKAGE_ADDED.equals(intent.getAction())) {

            Toast.makeText(context, "有应用被添加", Toast.LENGTH_LONG).show();

        } else if (Intent.ACTION_PACKAGE_REMOVED.equals(intent.getAction())) {

            Toast.makeText(context, "有应用被删除", Toast.LENGTH_LONG).show();

        }

  

        else if (Intent.ACTION_PACKAGE_REPLACED.equals(intent.getAction())) {

            Toast.makeText(context, "有应用被替换", Toast.LENGTH_LONG).show();

        }

  

        else if (Intent.ACTION_CAMERA_BUTTON.equals(intent.getAction())) {

            Toast.makeText(context, "按键", Toast.LENGTH_LONG).show();

        }

    }

}

需要声明的权限如下AndroidManifest.xml


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="zy.Broadcast" android:versionCode="1" android:versionName="1.0">

    <application android:icon="@drawable/icon" android:label="@string/app_name">

        <activity android:name=".Broadcast" android:label="@string/app_name">

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>

        <receiver android:name="getBroadcast" android:enabled="true">

            <intent-filter>

                <action android:name="android.intent.action.PACKAGE_ADDED"></action>

                <!-- <action android:name="android.intent.action.PACKAGE_CHANGED"></action> -->

                <action android:name="android.intent.action.PACKAGE_REMOVED"></action>

                <action android:name="android.intent.action.PACKAGE_REPLACED"></action>

                <!-- <action android:name="android.intent.action.PACKAGE_RESTARTED"></action> -->

                <!-- <action android:name="android.intent.action.PACKAGE_INSTALL"></action> -->

                <action android:name="android.intent.action.CAMERA_BUTTON"></action>

                <data android:scheme="package"></data>

            </intent-filter>

        </receiver>

    </application>

    <uses-sdk android:minSdkVersion="3" />

</manifest>

3:使用Toast输出一个字符串

?

1

2

3

public void DisplayToast(String str) {

    Toast.makeText(this,str,Toast.LENGTH_SHORT).show();

}

4:把一个字符串写进文件


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

public void writefile(String str, String path) {

    File file;

    FileOutputStream out;

      

    try {

        // 创建文件

        file = new File(path);

        file.createNewFile();

          

        //打开文件file的OutputStream

        out = new FileOutputStream(file);

        String infoToWrite = str;

        //将字符串转换成byte数组写入文件

        out.write(infoToWrite.getBytes());

        //关闭文件file的OutputStream

        out.close();

    }

    catch (IOException e) {

        // 将出错信息打印到Logcat

        DisplayToast(e.toString());

    }

}

5:把文件内容读出到一个字符串


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

public String getinfo(String path) {

    File file;

    String str=""; 

    FileInputStream in;

    try {

        //打开文件file的InputStream

        file = new File(path);

        in = new FileInputStream(file);

        //将文件内容全部读入到byte数组

        int length = (int)file.length();

        byte[] temp = new byte[length];

        in.read(temp, 0, length);

        //将byte数组用UTF-8编码并存入display字符串中

        str =  EncodingUtils.getString(temp,TEXT_ENCODING);

        //关闭文件file的InputStream

          

        in.close();

    }

    catch (IOException e) {

        DisplayToast(e.toString());

    }

    return str;

}

6:调用Androidinstaller安装和卸载程序


1

2

3

4

5

6

7

Intent intent = new Intent(Intent.ACTION_VIEW); 

intent.setDataAndType(Uri.fromFile(new File("/sdcard/WorldCupTimer.apk")), "application/vnd.android.package-archive"); 

startActivity(intent); //安装 程序

  

Uri packageURI = Uri.parse("package:zy.dnh");     

Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);     

startActivity(uninstallIntent);//正常卸载程序

7:结束某个进程


1

activityManager.restartPackage(packageName);

8:设置默认来电铃声


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

public void setMyRingtone() {

    File k = new File("/sdcard/Shall We Talk.mp3"); // 设置歌曲路径

    ContentValues values = new ContentValues();

    values.put(MediaStore.MediaColumns.DATA, k.getAbsolutePath());

    values.put(MediaStore.MediaColumns.TITLE, "Shall We Talk");

    values.put(MediaStore.MediaColumns.SIZE, 8474325);

    values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3");

    values.put(MediaStore.Audio.Media.ARTIST, "Madonna");

    values.put(MediaStore.Audio.Media.DURATION, 230);

    values.put(MediaStore.Audio.Media.IS_RINGTONE, true);

    values.put(MediaStore.Audio.Media.IS_NOTIFICATION, false);

    values.put(MediaStore.Audio.Media.IS_ALARM, false);

    values.put(MediaStore.Audio.Media.IS_MUSIC, false);

    // Insert it into the database

    Uri uri = MediaStore.Audio.Media.getContentUriForPath(k.getAbsolutePath());

    Uri newUri = this.getContentResolver().insert(uri, values);

    RingtoneManager.setActualDefaultRingtoneUri(this, RingtoneManager.TYPE_RINGTONE, newUri);

}

需要的权限


1

2

<uses-permission android:name="android.permission.WRITE_SETTINGS"></uses-permission>

模拟HOME按键


1

2

3

4

Intent i=new Intent(Intent.ACTION_MAIN);

i.addCategory(Intent.CATEGORY_HOME);

i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

context.startActivity(i);

9:打开某一个联系人


1

2

3

4

5

6

Intent intent=new Intent();

String data = "content://contacts/people/1";

Uri  uri = Uri.parse(data);

intent.setAction(Intent.ACTION_VIEW);

intent.setData(uri);

startActivity(intent);

10:发送文件


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

void sendFile(String path) {

    File mZipFile=new File(path);

    Intent intent = new Intent(Intent.ACTION_SEND);

    //  intent.setClassName("com.android.bluetooth", "com.broadcom.bt.app.opp.OppLauncherActivity");

    // intent.setClassName("com.android.bluetooth", "com.android.bluetooth.opp.BluetoothOppLauncherActivity");

    intent.putExtra("subject", mZipFile 

            .getName()); // 

      

    intent.putExtra("body", "content by chopsticks"); // 正文 

    intent.putExtra(Intent.EXTRA_STREAM, 

            Uri.fromFile(mZipFile)); // 添加附件,附件为file对象 

    if (mZipFile.getName().endsWith(".gz")) { 

        intent 

                .setType("application/x-gzip"); // 如果是gz使用gzip的mime 

    } else if (mZipFile.getName().endsWith( 

            ".txt")) { 

        intent.setType("text/plain"); // 纯文本则用text/plain的mime 

    } else if (mZipFile.getName().endsWith( 

            ".zip")) { 

        intent.setType("application/zip"); // 纯文本则用text/plain的mime 

    } else { 

        intent 

                .setType("application/octet-stream"); // 其他的均使用流当做二进制数据来发送 

    } 

   // startActivity(intent);

    startActivity( 

            Intent.createChooser(intent, 

                    "选择蓝牙客户端"));

}

 


  相关解决方案