当前位置:  编程技术>移动开发
本页文章导读:
    ▪自各儿写的一个快速卸载的widget        自己写的一个快速卸载的widget 我们在开发的过程中,可能需要频繁的安装卸载自己的程序,而如果按照android系统的卸载步骤将花费较多的时间,再加上最近看android的widget,所以写个这样的.........
    ▪ 两个使用同时存在的情况处理        两个应用同时存在的情况处理 1.应用场景:对于我们自己开发的两个应用程序,一个应用程序的包名为 aa.bb.cc,软件名叫a,它的入口Activity为 aaActivity(入口activity就是在AndroidManifest.xml中.........
    ▪ 获取运用详细信息 报错 解决       获取应用详细信息 报错 解决  public static void showInstalledAppDetails(Context context, String packageName) {           Intent intent = new Intent();           final int apiLevel = Build.VERSION.SDK_INT;           if (.........

[1]自各儿写的一个快速卸载的widget
    来源: 互联网  发布时间: 2014-02-18
自己写的一个快速卸载的widget

我们在开发的过程中,可能需要频繁的安装卸载自己的程序,而如果按照android系统的卸载步骤将花费较多的时间,再加上最近看android的widget,所以写个这样的小程序,希望有所帮助,反正自个儿用着还挺方便的。 源码见附件。

 

在做这个小程序中,看到的一片较好的文章,推荐下:

http://www.ophonesdn.com/article/show/146


    
[2] 两个使用同时存在的情况处理
    来源: 互联网  发布时间: 2014-02-18
两个应用同时存在的情况处理
1.应用场景:对于我们自己开发的两个应用程序,一个应用程序的包名为 aa.bb.cc,软件名叫a,它的入口Activity为 aaActivity(入口activity就是在AndroidManifest.xml中标签——<action android:name="android.intent.action.MAIN" />所在的activity,说白了,就是打开应用程序,第一个显示的activity),另一个应用程序的包名为 xx.yy.zz,软件名叫x,它的入口Activity为 xxActivity。
    网上的通用做法如下(这里我假设a中有一个Button,这个Button的onclick事件中的代码如下):
    ComponentName componentName=new   ComponentName("xx.yy.zz","xx.yy.zz.xxActivity");  
                Intent intent=new Intent();  
                intent.setComponent(componentName);  
                intent.setAction(Intent.ACTION_VIEW);  
                startActivity(intent);
    这种方法对于调用我们自己写的应用程序没有问题,但是如果你想调用别人的应用程序(例如:你写了一个游戏管理的软件,需要管理很多游戏,但是游戏不是你写的,你是得不到入口activity的,你怎么办?),解决办法如下:
    通过PackageManager可以得到PackageInfo,通过PackageInfo就可以得到你手机上安装的应用的包名(这个很简单,网上有的是,不赘述)。关键是下一步,代码如下(也是a应用中Button的onclick中的代码):
    PackageManager packageManager = Start_RemoveSoftActivity.this.getPackageManager();
Intent intent=new Intent();
    try {
    intent =packageManager.getLaunchIntentForPackage("要调用应用的包名");
} catch (NameNotFoundException e) {
Log.i(TAG, e.toString());
}
startActivity(intent);
    其中,"要调用应用的包名"为通过PackageInfo得到的想要启动的应用的包名。这样,我们就可以不知道别人应用源码的情况下,也可以调用别人的应用程序。
3.通过代码在应用中安装已有的APK
需要将apk拷贝至shared_prefs文件夹下

(Eclipse下工具栏window-->show view-->other-->Android-->File Explorer,

也许打开的File Explorer为空白,这个你肯定忘了先运行下面代码构成的工程。出现目录后找到data/data/工程包名/shared_prefs,ok)

public class APKTest extends Activity
{
private SharedPreferences metafer = null;
ApplicationInfo mAppInfo = null;
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //apk安装或卸载路径
        String installPath = "/data/data/com.hyz/shared_prefs/matchmusic.apk";
        //新建shared_prefs文件夹
        mkShared_prefs();
        //安装apk
        installApk(installPath);
        //卸载apk
        dumpApk(installPath);
    }
    public void dumpApk(String path)
    {
     ApplicationInfo mAppInfo = null;
        PackageManager pm = getApplicationContext().getPackageManager();
        PackageInfo info = pm.getPackageArchiveInfo(path, PackageManager.GET_ACTIVITIES);
        if(info != null)
        {
         mAppInfo = info.applicationInfo;
        }
        Uri uri = Uri.fromParts("package", mAppInfo.packageName, null);
        Intent it = new Intent(Intent.ACTION_DELETE, uri);
        startActivity(it);
    }
    public void installApk(String path)
    {
     Intent ret = new Intent();
     ret.setDataAndType(Uri.fromFile(new File(path)),"application/vnd.android.package-archive");
        ret.setAction(Intent.ACTION_VIEW);
        startActivity(ret);
    }
    public void mkShared_prefs()
    {
     if (metafer == null)
     {
  // metafer = getSharedPreferences("Vdmc", 0);
      metafer =  PreferenceManager.getDefaultSharedPreferences(this); 
  }
     SharedPreferences.Editor editor = metafer.edit();
  //editor.putString("IMSI", "");
  editor.commit();
    }
}





    
[3] 获取运用详细信息 报错 解决
    来源: 互联网  发布时间: 2014-02-18
获取应用详细信息 报错 解决

 public static void showInstalledAppDetails(Context context, String packageName) {  

        Intent intent = new Intent();  

        final int apiLevel = Build.VERSION.SDK_INT;  

        if (apiLevel >= 9) { // 2.3(ApiLevel 9)以上,使用SDK提供的接口  

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

            Uri uri = Uri.fromParts(SCHEME, packageName, null);  

            intent.setData(uri);  

        } else { // 2.3以下,使用非公开的接口(查看InstalledAppDetails源码)  

            // 2.2和2.1中,InstalledAppDetails使用的APP_PKG_NAME不同。  

            final String appPkgName = (apiLevel == 8 ? APP_PKG_NAME_22  

                    : APP_PKG_NAME_21);  

            intent.setAction(Intent.ACTION_VIEW);  

            intent.setClassName(APP_DETAILS_PACKAGE_NAME,  

                    APP_DETAILS_CLASS_NAME);  

            intent.putExtra(appPkgName, packageName);  

        }  

        context.startActivity(intent);  

    } 

 

 

 private static final String SCHEME = "package";  

    /** 

     * 调用系统InstalledAppDetails界面所需的Extra名称(用于Android 2.1及之前版本) 

     */  

    private static final String APP_PKG_NAME_21 = "com.android.settings.ApplicationPkgName";  

    /** 

     * 调用系统InstalledAppDetails界面所需的Extra名称(用于Android 2.2) 

     */  

    private static final String APP_PKG_NAME_22 = "pkg";  

    /** 

     * InstalledAppDetails所在包名 

     */  

    private static final String APP_DETAILS_PACKAGE_NAME = "com.android.settings";  

    /** 

     * InstalledAppDetails类名 

     */  

    private static final String APP_DETAILS_CLASS_NAME = "com.android.settings.InstalledAppDetails";  

 

 

这是正确代码,主要是action问题


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android双击返回键退出程序的实现方法 iis7站长之家
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3