当前位置: 首页 > news >正文

学院网站建设规划今日国际重大新闻

学院网站建设规划,今日国际重大新闻,网站建设前景如何,宿迁房价2023年最新房价Android 一体机研发之修改系统设置————屏幕亮度 Android 一体机研发之修改系统设置————声音 Android 一体机研发之修改系统设置————自动锁屏 前言 最近工作略微有点儿空闲,抽空给大家总结一下:近期一直搞得一体机app研发,适用…

在这里插入图片描述
Android 一体机研发之修改系统设置————屏幕亮度

Android 一体机研发之修改系统设置————声音

Android 一体机研发之修改系统设置————自动锁屏

前言

最近工作略微有点儿空闲,抽空给大家总结一下:近期一直搞得一体机app研发,适用于医疗渠道。

一体机找工厂定制了一下板子和系统,找他们fw后期app会以apk的形式封装到系统中,当然了开机logo也会封装进去。

在这版一体机,有一个可以更改系统设置的功能版块,记得之前总结过Android 调用系统设置,有兴趣的可以去看一下;这一篇将把部分功能做一个细分化讲解。

但是在调用系统设置的时候,有些系统功能让用户一看就和手机一样的功能,并且有些功能是我们不需要的,这里就需要我们自己去实现修改系统权限的功能

接下来,会给大家出几篇一体机研发之修改系统设置系列文章,欢迎我们共同学习进步!

屏幕亮度

修改系统屏幕亮度这种操作还是挺常见的,一般在多媒体开发中多少会涉及到。

从上图中虽然很难看出效果展示,但是大概都能猜到功能的具体实现,就是通过seekBar来控制亮度的百分比。

如果想实现修改屏幕亮度功能,这里涉及了一个高级隐私权限,需要用户在app设置页面手动授权

设计思路

  1. AndroidManifest设置权限;

  2. 获取系统屏幕亮度;

  3. 修改系统Settings 中屏幕亮度(注册监听屏幕亮度变化),影响所有页面和App;

    3.1 判断权限

    3.2 有则修改屏幕亮度

    3.3 无则引导用户授权

具体实现

AndroidManifest设置权限

	<!-- 修改系统设置 --><uses-permission android:name="android.permission.WRITE_SETTINGS" /><uses-permission android:name="android.permission.READ_CONTACTS" /><uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" /><uses-permission android:name="android.permission.HARDWARE_TEST" />

获取系统屏幕亮度

  • Java
	/*** 获取app屏幕亮度** @param activity* @return*/public static int getScreenBrightness(Activity activity) {try {return Settings.System.getInt(activity.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS);} catch (Settings.SettingNotFoundException e) {e.printStackTrace();}return 0;}
  • Kotlin
	/*** 获取系统屏幕亮度(0-255)*/private fun getScreenBrightness(): Int {try {return Settings.System.getInt(this.contentResolver, Settings.System.SCREEN_BRIGHTNESS)} catch (e: SettingNotFoundException) {e.printStackTrace()}return 0}

修改系统Settings 中屏幕亮度,影响所有页面和App

注册监听 系统屏幕亮度变化
  • Java
	private void registerContentObserver() {ContentResolver contentResolver = getContentResolver();if (contentResolver != null) {contentResolver.registerContentObserver(Settings.System.getUriFor(Settings.System.SCREEN_BRIGHTNESS),true,mBrightnessObserver);}}
  • Kotlin
	private fun registerContentObserver() {this.contentResolver?.registerContentObserver(Settings.System.getUriFor(Settings.System.SCREEN_BRIGHTNESS),true,mBrightnessObserver)}

监听系统亮度变化
  • Java
	private ContentObserver mBrightnessObserver = new ContentObserver(new Handler()) {public void onChange(boolean selfChange) {super.onChange(selfChange);ContentResolver contentResolver = getContentResolver();if (contentResolver != null) {mScreenBrightness = getScreenBrightness(BrightActivity.this);Log.e("监听亮度 >>>", "init: " + mScreenBrightness);updateNum(mScreenBrightness);setWindowBrightness(mScreenBrightness);}}};
  • Kotlin
	private val mBrightnessObserver = object : ContentObserver(Handler(Looper.getMainLooper())) {override fun onChange(selfChange: Boolean) {super.onChange(selfChange)try {this.contentResolver?.let {mScreenBrightness = Settings.System.getInt(it, Settings.System.SCREEN_BRIGHTNESS)updateNum(mScreenBrightness)setWindowBrightness(mScreenBrightness)}} catch (e: SettingNotFoundException) {e.printStackTrace()}}}

注销监听
  • Java
	protected void onDestroy() {super.onDestroy();ContentResolver contentResolver = getContentResolver();if (contentResolver != null) {contentResolver.unregisterContentObserver((ContentObserver) mBrightnessObserver);}}
  • Kotlin
	override fun onDestroy() {super.onDestroy()//注销监听this.contentResolver?.unregisterContentObserver(mBrightnessObserver)}

通过seekBar修改系统Settings 中屏幕亮度

  • Java
	brightBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {(api = Build.VERSION_CODES.M)public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {Log.e("动态屏幕亮度 >>>", "onProgressChanged: " + progress);mScreenBrightness = progress * ratio;if (Settings.System.canWrite(BrightActivity.this)) {setScreenBrightness(mScreenBrightness);updateNum(mScreenBrightness);} else {Toast.makeText(BrightActivity.this, "没有修改权限", Toast.LENGTH_SHORT).show();// 打开允许修改Setting 权限的界面Intent intent = new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS, Uri.parse("package:"+ getPackageName()));startActivityForResult(intent,mRequestCode);}}public void onStartTrackingTouch(SeekBar seekBar) {}public void onStopTrackingTouch(SeekBar seekBar) {}});
  • Kotlin
	seekBar.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {Log.i("onProgressChanged----", "" + progress)mScreenBrightness = progress * ratio//判断是否有修改系统设置权限if (Settings.System.canWrite(this)) {setScreenBrightness(mScreenBrightness)updateNum(mScreenBrightness)} else {Toast.makeText(this, "没有修改权限", Toast.LENGTH_SHORT).show()// 打开允许修改系统设置权限的页面val intent = Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS, Uri.parse("package:$packageName"))startActivityForResult(intent, mRequestCode)}}override fun onStartTrackingTouch(seekBar: SeekBar?) {}override fun onStopTrackingTouch(seekBar: SeekBar?) {}})

用户已授权,设置屏幕亮度

  • Java
 	/*** 设置系统屏幕亮度,影响所有页面和app* 注意:这种方式是需要手动权限的(android.permission.WRITE_SETTINGS)*/private final void setScreenBrightness(int brightness) {//先检测调节模式setScreenManualMode();//再设置Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, brightness);}private final void setScreenManualMode() {try {//获取当前系统亮度调节模式int mode = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE);//如果是自动,则改为手动if (mode == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC) {Settings.System.putInt(getContentResolver(),Settings.System.SCREEN_BRIGHTNESS_MODE,Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);}} catch (Settings.SettingNotFoundException var2) {var2.printStackTrace();}}
  • Kotlin
 	/*** 设置系统屏幕亮度,影响所有页面和app* 注意:这种方式是需要手动权限的(android.permission.WRITE_SETTINGS)*/private fun setScreenBrightness(brightness: Int) {try {//先检测调节模式setScreenManualMode()//再设置Settings.System.putInt(this.contentResolver, Settings.System.SCREEN_BRIGHTNESS, brightness)} catch (e: SettingNotFoundException) {e.printStackTrace()}}/*** 设置系统亮度调节模式(SCREEN_BRIGHTNESS_MODE)* SCREEN_BRIGHTNESS_MODE_MANUAL 手动调节* SCREEN_BRIGHTNESS_MODE_AUTOMATIC 自动调节*/private fun setScreenManualMode() {try {//获取当前系统亮度调节模式val mode = Settings.System.getInt(this.contentResolver, Settings.System.SCREEN_BRIGHTNESS_MODE)//如果是自动,则改为手动if (mode == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC) {Settings.System.putInt(this.contentResolver,Settings.System.SCREEN_BRIGHTNESS_MODE,Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL)}} catch (e: SettingNotFoundException) {e.printStackTrace()}}

监听系统按键

	//监听系统按键public boolean onKeyDown(int keyCode, KeyEvent event) {switch (keyCode) {case KeyEvent.KEYCODE_VOLUME_DOWN:if (mScreenBrightness > ratio) {mScreenBrightness -= ratio;} else {mScreenBrightness = 1;}Log.e("Down >>>", "onKeyDown: " + mScreenBrightness);setWindowBrightness(mScreenBrightness);updateNum(mScreenBrightness);return true;case KeyEvent.KEYCODE_VOLUME_UP:if (mScreenBrightness < (255 - ratio)) {mScreenBrightness += ratio;} else {mScreenBrightness = 255;}Log.e("Up >>>", "onKeyDown: " + mScreenBrightness);setWindowBrightness(mScreenBrightness);updateNum(mScreenBrightness);return true;/* case KeyEvent.KEYCODE_VOLUME_MUTE:return true;*/}return super.onKeyDown(keyCode, event);}

完整操作

  • Java
/*** @author 拉莫帅* @date 2023/2/8* @address* @Desc 修改系统亮度*/
public class BrightActivity extends Activity {/*** 非系统签名应用,引导用户手动授权修改Settings 权限**/private int mRequestCode = 1;private SeekBar brightBar;//当前屏幕亮度private int mScreenBrightness = 0;//每次加减的比例private int ratio = 25;private ContentObserver mBrightnessObserver = new ContentObserver(new Handler()) {public void onChange(boolean selfChange) {super.onChange(selfChange);ContentResolver contentResolver = getContentResolver();if (contentResolver != null) {mScreenBrightness = getScreenBrightness(BrightActivity.this);Log.e("监听亮度 >>>", "init: " + mScreenBrightness);updateNum(mScreenBrightness);setWindowBrightness(mScreenBrightness);}}};(api = Build.VERSION_CODES.M)protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_bright);init();registerContentObserver();setListener();}private void init() {brightBar = findViewById(R.id.brightBar);ImageView back = findViewById(R.id.back);TextView title = findViewById(R.id.title);title.setText("亮度");//获取当前亮度mScreenBrightness = getScreenBrightness(BrightActivity.this);Log.e("当前亮度 >>>", "init: " + mScreenBrightness);updateNum(mScreenBrightness);back.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {finish();}});}private void registerContentObserver() {ContentResolver contentResolver = getContentResolver();if (contentResolver != null) {contentResolver.registerContentObserver(Settings.System.getUriFor(Settings.System.SCREEN_BRIGHTNESS),true,mBrightnessObserver);}}protected void onDestroy() {super.onDestroy();ContentResolver contentResolver = getContentResolver();if (contentResolver != null) {contentResolver.unregisterContentObserver((ContentObserver) mBrightnessObserver);}}private void setListener() {brightBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {(api = Build.VERSION_CODES.M)public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {Log.e("动态屏幕亮度 >>>", "onProgressChanged: " + progress);mScreenBrightness = progress * ratio;if (Settings.System.canWrite(BrightActivity.this)) {setScreenBrightness(mScreenBrightness);updateNum(mScreenBrightness);} else {Toast.makeText(BrightActivity.this, "没有修改权限", Toast.LENGTH_SHORT).show();// 打开允许修改Setting 权限的界面Intent intent = new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS, Uri.parse("package:"+ getPackageName()));startActivityForResult(intent,mRequestCode);}}public void onStartTrackingTouch(SeekBar seekBar) {}public void onStopTrackingTouch(SeekBar seekBar) {}});}(api = Build.VERSION_CODES.M)protected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if (requestCode == mRequestCode) {if (Settings.System.canWrite((Context) BrightActivity.this)) {setScreenBrightness(mScreenBrightness);updateNum(mScreenBrightness);} else {Toast.makeText((Context) this, "您已拒绝修系统Setting的屏幕亮度权限", Toast.LENGTH_SHORT).show();}}}/*** 获取app屏幕亮度** @param activity* @return*/public static int getScreenBrightness(Activity activity) {try {return Settings.System.getInt(activity.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS);} catch (Settings.SettingNotFoundException e) {e.printStackTrace();}return 0;}/*** 更新页面显示** @param mScreenBrightness*/private final void updateNum(int mScreenBrightness) {//四舍五入int i = (int) Math.floor(mScreenBrightness / ratio);brightBar.setProgress(i);}/*** 设置系统屏幕亮度,影响所有页面和app* 注意:这种方式是需要手动权限的(android.permission.WRITE_SETTINGS)*/private final void setScreenBrightness(int brightness) {//先检测调节模式setScreenManualMode();//再设置Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, brightness);}private final void setScreenManualMode() {try {//获取当前系统亮度调节模式int mode = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE);//如果是自动,则改为手动if (mode == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC) {Settings.System.putInt(getContentResolver(),Settings.System.SCREEN_BRIGHTNESS_MODE,Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);}} catch (Settings.SettingNotFoundException var2) {var2.printStackTrace();}}/*** 设置当前应用屏幕亮度,只当前有效*/private final void setWindowBrightness(int brightness) {Window window = this.getWindow();WindowManager.LayoutParams lp = window.getAttributes();lp.screenBrightness = (float) brightness / 255.0F;window.setAttributes(lp);}//监听系统按键public boolean onKeyDown(int keyCode, KeyEvent event) {switch (keyCode) {case KeyEvent.KEYCODE_VOLUME_DOWN:if (mScreenBrightness > ratio) {mScreenBrightness -= ratio;} else {mScreenBrightness = 1;}Log.e("Down >>>", "onKeyDown: " + mScreenBrightness);setWindowBrightness(mScreenBrightness);updateNum(mScreenBrightness);return true;case KeyEvent.KEYCODE_VOLUME_UP:if (mScreenBrightness < (255 - ratio)) {mScreenBrightness += ratio;} else {mScreenBrightness = 255;}Log.e("Up >>>", "onKeyDown: " + mScreenBrightness);setWindowBrightness(mScreenBrightness);updateNum(mScreenBrightness);return true;/* case KeyEvent.KEYCODE_VOLUME_MUTE:return true;*/}return super.onKeyDown(keyCode, event);}
}
  • Kotlin
class BrightnessActivity : AppCompatActivity() {//当前屏幕亮度private var mScreenBrightness: Int = 0//每次加减的比例private var ratio: Int = 25private var mRequestCode = 1override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_brightness)init()registerContentObserver()setListener()}private fun init() {mScreenBrightness = getScreenBrightness()updateNum(mScreenBrightness)}/*** 注册监听 系统屏幕亮度变化*/private fun registerContentObserver() {this.contentResolver?.registerContentObserver(Settings.System.getUriFor(Settings.System.SCREEN_BRIGHTNESS),true,mBrightnessObserver)}/*** 监听系统亮度变化*/private val mBrightnessObserver = object : ContentObserver(Handler(Looper.getMainLooper())) {override fun onChange(selfChange: Boolean) {super.onChange(selfChange)try {this.contentResolver?.let {mScreenBrightness = Settings.System.getInt(it, Settings.System.SCREEN_BRIGHTNESS)updateNum(mScreenBrightness)setWindowBrightness(mScreenBrightness)}} catch (e: SettingNotFoundException) {e.printStackTrace()}}}override fun onDestroy() {super.onDestroy()//注销监听this.contentResolver?.unregisterContentObserver(mBrightnessObserver)}private fun setListener() {seekBar.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {Log.i("onProgressChanged----", "" + progress)mScreenBrightness = progress * ratio//判断是否有修改系统设置权限if (Settings.System.canWrite(this)) {setScreenBrightness(mScreenBrightness)updateNum(mScreenBrightness)} else {Toast.makeText(this, "没有修改权限", Toast.LENGTH_SHORT).show()// 打开允许修改系统设置权限的页面val intent = Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS, Uri.parse("package:$packageName"))startActivityForResult(intent, mRequestCode)}}override fun onStartTrackingTouch(seekBar: SeekBar?) {}override fun onStopTrackingTouch(seekBar: SeekBar?) {}})}/*** 处理返回结果*/override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {super.onActivityResult(requestCode, resultCode, data)if (requestCode == mRequestCode) {if (Settings.System.canWrite(this)) {setScreenBrightness(mScreenBrightness)updateNum(mScreenBrightness)} else {Toast.makeText(this, "拒绝了权限", Toast.LENGTH_SHORT).show()}}}/*** 更新页面显示*/private fun updateNum(mScreenBrightness: Int) {//转float 取四舍五入val i: Int = (mScreenBrightness / (ratio.toFloat())).roundToInt()tv_brightness.text = i.toString()seekBar.progress = i}/*** 获取系统屏幕亮度(0-255)*/private fun getScreenBrightness(): Int {try {return Settings.System.getInt(this.contentResolver, Settings.System.SCREEN_BRIGHTNESS)} catch (e: SettingNotFoundException) {e.printStackTrace()}return 0}/*** 设置系统屏幕亮度,影响所有页面和app* 注意:这种方式是需要手动权限的(android.permission.WRITE_SETTINGS)*/private fun setScreenBrightness(brightness: Int) {try {//先检测调节模式setScreenManualMode()//再设置Settings.System.putInt(this.contentResolver, Settings.System.SCREEN_BRIGHTNESS, brightness)} catch (e: SettingNotFoundException) {e.printStackTrace()}}/*** 设置系统亮度调节模式(SCREEN_BRIGHTNESS_MODE)* SCREEN_BRIGHTNESS_MODE_MANUAL 手动调节* SCREEN_BRIGHTNESS_MODE_AUTOMATIC 自动调节*/private fun setScreenManualMode() {try {//获取当前系统亮度调节模式val mode = Settings.System.getInt(this.contentResolver, Settings.System.SCREEN_BRIGHTNESS_MODE)//如果是自动,则改为手动if (mode == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC) {Settings.System.putInt(this.contentResolver,Settings.System.SCREEN_BRIGHTNESS_MODE,Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL)}} catch (e: SettingNotFoundException) {e.printStackTrace()}}/*** 设置当前应用屏幕亮度,只当前有效*/private fun setWindowBrightness(brightness: Int) {val window = windowval lp = window.attributeslp.screenBrightness = brightness / 255.0fwindow.attributes = lp}
}


最近忙里偷闲,↓↓↓↓【谁家de码农陈先生】↓↓↓↓,里面定时给大家分享技术博文、前方高能资讯内容!欢迎各位老板点赞关注,你们就是我的动力源泉!


文章转载自:
http://snathe.jtrb.cn
http://intertexture.jtrb.cn
http://circumscription.jtrb.cn
http://gyrate.jtrb.cn
http://maturely.jtrb.cn
http://una.jtrb.cn
http://stereomicroscope.jtrb.cn
http://kornberg.jtrb.cn
http://pinealoma.jtrb.cn
http://geomedicine.jtrb.cn
http://big.jtrb.cn
http://unright.jtrb.cn
http://upsides.jtrb.cn
http://tramway.jtrb.cn
http://outcurve.jtrb.cn
http://spinsterish.jtrb.cn
http://passionflower.jtrb.cn
http://excavation.jtrb.cn
http://impermissibly.jtrb.cn
http://flashiness.jtrb.cn
http://mappist.jtrb.cn
http://tickbird.jtrb.cn
http://cypress.jtrb.cn
http://airdash.jtrb.cn
http://kingly.jtrb.cn
http://sullen.jtrb.cn
http://sulfonium.jtrb.cn
http://microtopography.jtrb.cn
http://platypus.jtrb.cn
http://snowslide.jtrb.cn
http://lithotritize.jtrb.cn
http://histogenesis.jtrb.cn
http://teletube.jtrb.cn
http://goaltender.jtrb.cn
http://antheral.jtrb.cn
http://sandro.jtrb.cn
http://distractingly.jtrb.cn
http://supersonic.jtrb.cn
http://assemblagist.jtrb.cn
http://opac.jtrb.cn
http://soapberry.jtrb.cn
http://marrowless.jtrb.cn
http://albuminate.jtrb.cn
http://thingummy.jtrb.cn
http://priory.jtrb.cn
http://breakneck.jtrb.cn
http://paraumbilical.jtrb.cn
http://sweepstakes.jtrb.cn
http://acusection.jtrb.cn
http://platinocyanid.jtrb.cn
http://superscription.jtrb.cn
http://pileus.jtrb.cn
http://walloon.jtrb.cn
http://prefocus.jtrb.cn
http://acetabularia.jtrb.cn
http://siccative.jtrb.cn
http://ack.jtrb.cn
http://landler.jtrb.cn
http://sniveler.jtrb.cn
http://panjabi.jtrb.cn
http://endville.jtrb.cn
http://thiobacteria.jtrb.cn
http://neuropter.jtrb.cn
http://mixture.jtrb.cn
http://brum.jtrb.cn
http://photoscope.jtrb.cn
http://pyrosulphate.jtrb.cn
http://sudra.jtrb.cn
http://lutestring.jtrb.cn
http://trichinosed.jtrb.cn
http://cornice.jtrb.cn
http://salmanazar.jtrb.cn
http://ozonesonde.jtrb.cn
http://shipper.jtrb.cn
http://lipstick.jtrb.cn
http://garner.jtrb.cn
http://neutralize.jtrb.cn
http://retrogradation.jtrb.cn
http://matte.jtrb.cn
http://contractive.jtrb.cn
http://beefeater.jtrb.cn
http://rooseveltiana.jtrb.cn
http://dance.jtrb.cn
http://mopish.jtrb.cn
http://disconcertedly.jtrb.cn
http://seric.jtrb.cn
http://oncoming.jtrb.cn
http://sheeplike.jtrb.cn
http://solan.jtrb.cn
http://volk.jtrb.cn
http://cimbalom.jtrb.cn
http://rasse.jtrb.cn
http://fiddler.jtrb.cn
http://depilatory.jtrb.cn
http://sphinx.jtrb.cn
http://strathspey.jtrb.cn
http://moniker.jtrb.cn
http://enervation.jtrb.cn
http://dissimulator.jtrb.cn
http://nitrid.jtrb.cn
http://www.15wanjia.com/news/98298.html

相关文章:

  • 想自己做一个网站如何优化推广网站
  • wordpress怎么搬站seo营销方案
  • 沈阳哪家网站制作公司比较好标题关键词优化技巧
  • dedecms 网站安装长春网站搭建
  • 书店网站建设网站栏目结构阿里云建网站
  • 5g网络架构朔州网站seo
  • 营销型网站效果百度竞价点击神器下载安装
  • 网站内容做淘宝店铺链接影响排名吗十大网络推广公司
  • 微友圈推广平台怎么加入上海seo优化
  • 烟台市未成年思想道德建设网站做互联网推广的公司
  • 内容管理网站网站开发的基本流程
  • 上海市建设工程信息报送网站seo推广工具
  • 怎么建设淘客自己的网站、免费seo免费培训
  • 中国北京出啥大事了seo搜索优化软件
  • 天津河北区做网站域名查询网
  • 你第一个物流网站建设方案成都官网seo服务
  • 网站建设未完成电商网站推广方案
  • 网站开发需要哪些资料seo优化人员
  • 贵阳网站制作方舟网络企业优化推广
  • 建设完网站如何信息更新湘潭seo培训
  • wordpress点赞win10系统优化工具
  • 做图模板网站百度宣传广告要多少钱
  • 网站给他人做付刑事责任最近最火的关键词
  • 哪个网站专做童装批发百度信息流广告代理
  • 模板网站制作百度刷排名seo
  • 游戏模型外包网站长春百度网站优化
  • 建设部网站投诉如何注册网店推广的作用是
  • 网站建设作业教程企业营销推广
  • 怎么添加网站图标建立网站有哪些步骤
  • 做网站需要什么条件北京seo网站开发