【问题标题】:How can I open settings from my app in android with Titanium?如何使用 Titanium 在 android 中打开我的应用程序的设置?
【发布时间】:2016-07-06 17:34:43
【问题描述】:

以下代码运行良好

var intent = Ti.Android.createIntent({
    action: 'android.settings.APPLICATION_SETTINGS',
});

intent.addFlags(Ti.Android.FLAG_ACTIVITY_NEW_TASK);
Ti.Android.currentActivity.startActivity(intent);

我从应用示例 https://github.com/appcelerator-developer-relations/appc-sample-ti510 中获取代码。

应用是否需要某些权限才能在 android 6.0 中打开设置?

感谢您的帮助。

【问题讨论】:

    标签: android titanium appcelerator-titanium


    【解决方案1】:

    正如你提到的,要使用的代码如下:

    var intent = Ti.Android.createIntent({
        action: activity, // e.g. "android.settings.APPLICATION_SETTINGS"
    });
    intent.addFlags(Ti.Android.FLAG_ACTIVITY_NEW_TASK);
    Ti.Android.currentActivity.startActivity(intent);
    

    活动是此处指定的值:https://developer.android.com/reference/android/provider/Settings.html

    另外,如果要打开应用设置页面,使用如下代码:

    var intent = Ti.Android.createIntent({
        action: "android.settings.APPLICATION_DETAILS_SETTINGS",
        data: "package:com.example.myapp"
    });
    intent.addFlags(Ti.Android.FLAG_ACTIVITY_NEW_TASK);
    Ti.Android.currentActivity.startActivity(intent);
    

    其中com.example.myapp 是您应用的包名。

    如果您希望打开您当前使用的应用的应用设置页面,您可以执行以下操作:

    data: "package:" + Ti.App.id
    

    【讨论】:

      【解决方案2】:

      我发现问题是因为我使用了不正确的活动,我在其他 .js 文件中作为助手使用了该功能。因为这条线我才意识到:

      // Get a reference to this activity (current activity)
      Ti.Android.currentActivity.startActivity(intent);
      

      所以它指向当前的活动(这实际上不是一个真实的活动),这就是为什么它从未打开设置,所以我做了什么:

      我将当前活动作为参数传递

      var activity = Ti.Android.currentActivity;
      openSettings(activity);
      

      对于处理打开设置的函数。所以我的功能:

      function openSettings(activity) {
          var intent = Ti.Android.createIntent({
              action: 'android.settings.APPLICATION_SETTINGS',
          });
      
          intent.addFlags(Ti.Android.FLAG_ACTIVITY_NEW_TASK);
          activity.startActivity(intent);
      }
      

      【讨论】:

        猜你喜欢
        • 2017-11-18
        • 2010-09-27
        • 2020-06-11
        • 2022-08-22
        • 1970-01-01
        • 1970-01-01
        • 2020-05-16
        • 2017-09-22
        相关资源
        最近更新 更多