2

我想在用户更改手机的配置文件时触发一个事件,但我不确定如何。理想情况下,我可以捕捉到广播意图并知道配置文件何时更改,但我无法找到任何有关此的文档。

如果我是正确的,配置文件系统不是库存 AOSP 的一部分,而是 Cyanogenmod。

我已经在我能找到的仅有的两个与配置文件相关的类中跋涉:

我能找到的唯一广播意图是here

关于如何实现这一点的任何想法?我的应用程序仅针对运行 Cyanogenmod 10.1 的设备。这是来自 CyanogenMod 的配置文件管理器,可以让您更清楚地了解我在说什么。

在此处输入图像描述

4

4 回答 4

2

不确定我对你想要的东西是否正确,但在我的情况下它运作良好。试试它是否可以帮助你。
我在这里使用了2 个按钮将配置文件设置为静音默认模式。当这些事件在按钮单击时激活时触发您的事件。

public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    final TextView text = (TextView) findViewById(R.id.text1);

    Button silent = (Button) findViewById(R.id.silent);
    Button default = (Button) findViewById(R.id.default);

    final AudioManager mode = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE);

    silent.setOnClickListener(new View.OnClickListener()
    {
        public void onClick(View v)
        {
            text.setText("The Mobile in Silent Mode"); //i use example case,trigger your event here

            mode.setRingerMode(AudioManager.RINGER_MODE_SILENT);
            Toast.makeText(getBaseContext(), "Silent Mode Activated",Toast.LENGTH_LONG).show()
        }
     });

    default.setOnClickListener(new View.OnClickListener()
    {
        public void onClick(View v)
        {
            text.setText("The Mobile in Default Mode"); //trigger your event here

            mode.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
            Toast.makeText(getBaseContext(), "Default Mode Activated", Toast.LENGTH_LONG).show();
         }
     });
 }

显然这也可以帮助你..

于 2013-07-04T13:26:48.367 回答
1

由于这是两个独立的环境,我认为现在无法检测到您何时从一个环境切换到另一个环境。

于 2013-06-28T13:28:19.157 回答
1

更改设备配置文件时如何触发事件?

Android 对此不提供任何支持,换句话说,您不能在更改配置文件时触发某些事件。

您只能在设备振铃模式发生变化时触发事件,但不能在配置文件中触发。

即使我找不到设备的配置文件名称和当前设置的配置文件名称,这可能是制作您正在搜索的内容的方式。

于 2013-07-11T06:27:45.050 回答
0

根据我与 Cyanogenmod 开发人员的讨论,可以通过BroadcastReceiverIntentin添加一个ProfileManagerService.java

问题是这个意图在ProfileManager.java课堂上没有出现,而是存在于其他地方。

这个问题的问题可以在Cyanogenmod 的问题跟踪器上找到。

于 2013-08-07T14:27:24.147 回答