Flutter位置行为分析插件sentiance_flutter的使用
Flutter位置行为分析插件sentiance_flutter的使用
本Flutter插件是围绕我们的Android SDKs构建的。
免责声明
此插件仅适用于Android平台。
入门指南
本Flutter插件是围绕我们的Android SDKs构建的。
以下文档仅专注于围绕我们原生Android SDKs的封装。要了解有关SDK及其在项目中的集成方式的更多信息,请参阅以下文档:
Android:
https://docs.sentiance.com/sdk/changelog/android
前置条件
安装
在项目的android/src/res/AndroidManifest.xml
文件中添加Geo Location API密钥:
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value= "GOOGLE_API_KEY"/>
该插件可在Pub上找到:https://pub.dev/packages/sentiance_flutter
在应用的pubspec.yaml
文件中添加以下依赖项:
dependencies:
sentiance_flutter:
git:
url: <Package url>
branch: master
注意:确保您的应用的最低API级别为19或更高。
在项目的根目录下运行flutter packages get
命令。
使用方法
示例代码可以在example/lib/main.dart
中找到。
导入包
import 'package:sentiance_flutter/sentiance_flutter.dart';
创建Sentiance实例
await SentianceFlutter.initialiseSentiance();
属性名称
在initialiseSentiance
方法中使用的属性名称如下表所示:
属性名称 | 描述 |
---|---|
token | 您的Sentiance账户的独特标识符。 |
sentianceSecret | 由Sentiance为您账户生成的秘密密钥。 |
appId | 每个设备的独特标识符。 |
crashDetectionUrl | 存储有关崩溃的信息。 |
mobileHealthUrl | 存储有关移动健康的信息。 |
获取移动健康数据
await SentianceFlutter.getMobileHealthData;
停止Sentiance
await SentianceFlutter.stopSentianceSDK;
示例代码
以下是完整的示例代码:
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:sentiance_flutter/sentiance_flutter.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({Key? key}) : super(key: key);
[@override](/user/override)
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: _getPaymentMethodOption(context),
),
);
}
String token = // 我们从应用程序中获取的令牌
"TOKEN";
String sentianceSecret = "SECRET"; // 常量
String appId = "APPLICATION ID"; // 常量
String userLinkUrl = "USER LINKING URL"; // 常量
String crashDetectionUrl = "CRASH DETECTION URL"; // 常量
String mobileHealthUrl = "MOBILE HEALTH URL"; // 常量
// 用于支付选项
Widget _getPaymentMethodOption(BuildContext context) {
return Container(
alignment: Alignment.center,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
ElevatedButton(
onPressed: () async {
await SentianceFlutter.initialiseSentiance(
token: token,
sentianceSecret: sentianceSecret,
appId: appId,
userLinkUrl: userLinkUrl,
crashDetectionUrl: crashDetectionUrl,
mobileHealthUrl: mobileHealthUrl);
},
child: const Text(
"初始化SDK",
style: TextStyle(
color: Colors.white,
fontSize: 16.0,
fontWeight: FontWeight.bold,
),
),
),
ElevatedButton(
onPressed: () async {
MobileHealthData data = await SentianceFlutter.getMobileHealthData;
if (kDebugMode) {
print(data.androidsdkVersion);
}
},
child: const Text("获取移动健康数据",
style: TextStyle(
color: Colors.white,
fontSize: 16.0,
fontWeight: FontWeight.bold,
)),
),
ElevatedButton(
onPressed: () async {
await SentianceFlutter.stopSentianceSDK;
},
child: const Text(
"停止SDK",
style: TextStyle(
color: Colors.white,
fontSize: 16.0,
fontWeight: FontWeight.bold,
),
),
),
],
),
);
}
}
更多关于Flutter位置行为分析插件sentiance_flutter的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter位置行为分析插件sentiance_flutter的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
sentiance_flutter
是一个用于在 Flutter 应用中集成 Sentiance SDK 的插件。Sentiance SDK 是一个位置行为分析工具,可以帮助开发者了解用户的行为模式、出行方式、停留点等信息。通过 sentiance_flutter
,你可以在 Flutter 应用中轻松地使用 Sentiance SDK 的功能。
1. 添加依赖
首先,你需要在 pubspec.yaml
文件中添加 sentiance_flutter
插件的依赖:
dependencies:
sentiance_flutter: ^latest_version
然后运行 flutter pub get
来安装依赖。
2. 初始化 Sentiance SDK
在使用 Sentiance SDK 之前,你需要对其进行初始化。通常,你可以在 main.dart
文件中的 main
函数中进行初始化。
import 'package:sentiance_flutter/sentiance_flutter.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// Initialize Sentiance SDK
await SentianceFlutter.initialize(
appId: 'YOUR_APP_ID',
appSecret: 'YOUR_APP_SECRET',
launchOptions: LaunchOptions(
backgroundLocationPermissionDescription: 'We need your location to analyze your behavior.',
shouldRequestMotionPermission: true,
),
);
runApp(MyApp());
}
3. 启动 Sentiance SDK
初始化完成后,你可以启动 Sentiance SDK 来开始收集数据。
await SentianceFlutter.start();
4. 监听事件
Sentiance SDK 提供了多种事件,你可以监听这些事件来获取用户的行为数据。例如,你可以监听用户的状态变化、出行事件、停留点等。
SentianceFlutter.onUserActivityUpdate.listen((event) {
print('User activity update: $event');
});
SentianceFlutter.onTripTimeout.listen((event) {
print('Trip timeout: $event');
});
SentianceFlutter.onTripDetected.listen((event) {
print('Trip detected: $event');
});
5. 获取用户状态
你可以通过 getUserStatus
方法获取当前用户的状态。
final userStatus = await SentianceFlutter.getUserStatus();
print('User status: $userStatus');
6. 停止 Sentiance SDK
如果你需要停止 Sentiance SDK 的数据收集,可以调用 stop
方法。
await SentianceFlutter.stop();
7. 处理权限
Sentiance SDK 需要获取一些权限,例如位置权限和运动传感器权限。你需要在应用中处理这些权限的请求。
import 'package:permission_handler/permission_handler.dart';
Future<void> requestPermissions() async {
final status = await Permission.locationWhenInUse.request();
if (status.isGranted) {
print('Location permission granted');
} else {
print('Location permission denied');
}
final motionStatus = await Permission.activityRecognition.request();
if (motionStatus.isGranted) {
print('Motion permission granted');
} else {
print('Motion permission denied');
}
}
8. 调试与日志
你可以启用 Sentiance SDK 的调试模式来查看详细的日志信息。
await SentianceFlutter.setLogLevel(LogLevel.debug);
9. 处理错误
在使用 Sentiance SDK 时,可能会遇到一些错误。你可以通过 onError
方法来监听错误事件。
SentianceFlutter.onError.listen((error) {
print('Error: $error');
});
10. 示例代码
以下是一个简单的示例,展示了如何在 Flutter 应用中使用 sentiance_flutter
插件:
import 'package:flutter/material.dart';
import 'package:sentiance_flutter/sentiance_flutter.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await SentianceFlutter.initialize(
appId: 'YOUR_APP_ID',
appSecret: 'YOUR_APP_SECRET',
launchOptions: LaunchOptions(
backgroundLocationPermissionDescription: 'We need your location to analyze your behavior.',
shouldRequestMotionPermission: true,
),
);
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Sentiance Flutter Example'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
ElevatedButton(
onPressed: () async {
await SentianceFlutter.start();
print('Sentiance SDK started');
},
child: Text('Start Sentiance'),
),
ElevatedButton(
onPressed: () async {
final userStatus = await SentianceFlutter.getUserStatus();
print('User status: $userStatus');
},
child: Text('Get User Status'),
),
],
),
),
),
);
}
}