现在的位置: 首页 > 综合 > 正文

【loading】Android常用代码集合

2017年12月05日 ⁄ 综合 ⁄ 共 8319字 ⁄ 字号 评论关闭

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

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
<?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>
                <actionandroid: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:调用Android installer安装和卸载程序

?
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
<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,
                    "选择蓝牙客户端"));
}

//安装apk文件 

private void installAPK(File file) {
  Intent intent = newIntent(Intent.ACTION_VIEW);
  Uri data =Uri.fromFile(file);
  String type ="application/vnd.android.package-archive";
  intent.setDataAndType(data,type);
  startActivity(intent);
 }

 

//卸载apk文件

 private void uninstallAPK(String packageName){
  Intent intent = newIntent(Intent.ACTION_VIEW);
  Uri data = Uri.parse("package:"+ packageName);
  intent.setData(data);
  startActivity(intent);
 }


 //编辑图片大小,保持图片不变形。
 public static Bitmap resetImage(BitmapsourceBitmap,int resetWidth,int resetHeight){
  int width =sourceBitmap.getWidth();
  int height =sourceBitmap.getHeight();
  int tmpWidth;
  int tmpHeight;
  float scaleWidth =(float)resetWidth / (float)width;
  float scaleHeight =(float)resetHeight / (float)height;
  float maxTmpScale = scaleWidth>= scaleHeight ? scaleWidth : scaleHeight;
  //保持不变形
  tmpWidth = (int)(maxTmpScale *width);
  tmpHeight = (int)(maxTmpScale *height);
  Matrix m = new Matrix();
  m.setScale(maxTmpScale,maxTmpScale, tmpWidth, tmpHeight);
  sourceBitmap =Bitmap.createBitmap(sourceBitmap, 0, 0, sourceBitmap.getWidth(),sourceBitmap.getHeight(), m, false);
  //切图
  int x = (tmpWidth -resetWidth)/2;
  int y = (tmpHeight -resetHeight)/2;
  returnBitmap.createBitmap(sourceBitmap, x, y, resetWidth,resetHeight);
 }

 

//从SIM卡中获取联系人

private Cursor getContacts() {
        Uri uri = Uri.parse("content://sim/adn");
        String[] projection = new String[] { "name", "phone" };
        String selection = null;
        String[] selectionArgs = null;
        String sortOrder = null;
        return managedQuery(uri, projection, selection, selectionArgs,sortOrder);
}

抱歉!评论已关闭.