如何使用 Titanium 从 android 中的应用打开设置?
How can I open settings from my app in android with 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 中打开设置?
感谢您的帮助。
我发现问题是因为我使用了不正确的 activity,我在其他 .js 文件中有这个函数作为助手。我意识到是因为这条线:
// Get a reference to this activity (current activity)
Ti.Android.currentActivity.startActivity(intent);
所以它指向当前的 activity(这实际上不是真实的),这就是它从未打开设置的原因,所以我做了:
我作为参数传递了我当前的 activity
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);
}
如您所述,要使用的代码如下:
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);
其中 activity 是此处指定的值: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
以下代码运行良好
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 中打开设置?
感谢您的帮助。
我发现问题是因为我使用了不正确的 activity,我在其他 .js 文件中有这个函数作为助手。我意识到是因为这条线:
// Get a reference to this activity (current activity)
Ti.Android.currentActivity.startActivity(intent);
所以它指向当前的 activity(这实际上不是真实的),这就是它从未打开设置的原因,所以我做了:
我作为参数传递了我当前的 activity
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);
}
如您所述,要使用的代码如下:
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);
其中 activity 是此处指定的值: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