ContentProvider Demo

一、注册

    <provider
        android:name="com.android.settings.breathlamp.ZF_BreathLampProvider"
        android:authorities="com.android.settings.breathlamp.Provider"
        android:exported="true" >
    </provider>

二、创建

    mContext = this;
    breathLampDao = new ZF_BreathLampDao(this);
    packagenames = breathLampDao.findAll();

    setContentView(R.layout.notification_lamp_switch);
    apppackagename = getIntent().getStringExtra(RETURN_INFO);
    //sp = PreferenceManager.getDefaultSharedPreferences(this) ;
    sp = mContext.getSharedPreferences(
            SHAREPREFERENCE_NAME, Context.MODE_WORLD_READABLE);
    int checked = sp.getInt(apppackagename,0);
    mswitch = (Switch) findViewById(R.id.notificationlamp_switch);
    mswitch.setChecked(checked == 1);

    mswitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener(){   
                @Override   
                public void onCheckedChanged(CompoundButton buttonView,   
                        boolean isChecked) {   
                    // TODO Auto-generated method stub   
                    if(isChecked){   
                        setappnotificationTypeByKey(apppackagename,1);
                        /*Intent intent = new Intent("android.intent.action.ZF_BREATHING_SETTING");
                        Bundle bundle=new Bundle();  
                        bundle.putString("appPackageName",apppackagename);  
                        bundle.putInt("settingLampFlag", 1);  
                        intent.putExtra("settinglampdata", bundle);
                        mContext.sendBroadcast(intent);*/ 
                        //先判断是否已经添加进数据库
                        mHandler.postDelayed(mRunnable, 100);
                    }else{   
                        setappnotificationTypeByKey(apppackagename,0);
                        /*Intent intent = new Intent("android.intent.action.ZF_BREATHING_SETTING");
                        Bundle bundle=new Bundle();  
                        bundle.putString("appPackageName",apppackagename);  
                        bundle.putInt("settingLampFlag", 0);  
                        intent.putExtra("settinglampdata", bundle);
                        mContext.sendBroadcast(intent);*/
                        //int id = breathLampDao.queryId(apppackagename);
                        //breathLampDao.update(id,apppackagename,0+"");
                        mHandler.postDelayed(mRunnable, 100);
                    }   
                }   
            }); 

三、调用

private boolean isBreath(String packagename){
    if(packagename == null) return false;
    ContentResolver resolver = mContext.getContentResolver();
    Uri guestUri = Uri
            .parse("content://com.android.settings.breathlamp.Provider/appinfo");
    Cursor cursor = resolver.query(guestUri, new String[]{"packagename","breathflag"}, null, null, "id desc");
    while(cursor.moveToNext()){
        String name = cursor.getString(0);
        String flag = cursor.getString(1);
        if(packagename.contains(name) && flag.contains("1")){
            return true;
        }
        Log.i("zyl log 1211","PhoneStatusBar--->isBreath.name = " + name);
        Log.i("zyl log 1211","PhoneStatusBar--->isBreath.flag = " + flag);
        Log.i("zyl log 1211","=========================");
    }
    cursor.close();
    return false;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值