如何使用Titanium从Android应用程序中打开设置?

时间:2016-07-06 17:34:44

标签: android titanium appcelerator-titanium

以下代码工作正常

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中打开设置?

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

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

from dfply import *

D['vector'] = D['vector'].apply(tuple)
a = D >> groupby(X.vector, X.gp) >> summarize(b=X.sq.sum())
a['vector'] = a['vector'].apply(np.array)
print (a)
   gp                                    vector    b
0   0            [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]    0
1   1          [2, 3, 4, 5, 6, 7, 8, 9, 10, 11]    1
2   0        [4, 5, 6, 7, 8, 9, 10, 11, 12, 13]   20
3   1      [6, 7, 8, 9, 10, 11, 12, 13, 14, 15]   34
4   0    [8, 9, 10, 11, 12, 13, 14, 15, 16, 17]  100
5   1  [10, 11, 12, 13, 14, 15, 16, 17, 18, 19]  130

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

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

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);

其中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

答案 1 :(得分:0)

我发现问题是由于我使用了不正确的活动引起的,我将其他.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);
}
相关问题