一些技巧

来源:互联网 发布:html5程序员 编辑:程序博客网 时间:2024/06/05 07:03

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

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

view plaincopy to clipboardprint?

<?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>  

 

2、调用Android installer 安装和卸载程序

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);//正常卸载程序 

 

3、 结束某个进程

activityManager.restartPackage(packageName); 

 

4、 设置默认来电铃声

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); 

    ;} 

需要的权限

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

 

5、ListView点击后不让他高亮的办法:android:listSelector="@android:color/transparent"

 

 6、android:layout_gravity 布局位置
      android:gravity 内容位置

 

原创粉丝点击