Flutter集成Truecaller SDK插件truecaller_android_sdk的使用

Flutter集成Truecaller SDK插件truecaller_android_sdk的使用

获取开始

这个项目是一个Flutter插件包的起点,该插件包包含Android和/或iOS平台特定的实现代码。

对于如何开始使用Flutter,可以查看我们的在线文档,其中提供了教程、示例、移动开发指南以及完整的API参考。


示例代码

以下是在Flutter应用中集成Truecaller SDK插件truecaller_android_sdk的完整示例代码:

import 'dart:async';

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:truecaller_android_sdk/truecaller_android_sdk.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> {
  String _platformVersion = '未知';

  [@override](/user/override)
  void initState() {
    super.initState();
  }

  // 平台消息是异步的,所以我们通过一个异步方法进行初始化。
  Future<void> initPlatformState() async {
    // 平台消息可能会失败,所以我们使用try/catch来处理PlatformException。
    // 我们还处理了消息可能返回null的情况。
    try {
      // 初始化Truecaller SDK
      await TruecallerAndroidSdk.initiateSDK;
      print('initiateSDK done');
      // 可选步骤:检查SDK是否可用
      // await TruecallerAndroidSdk.isUsable;
      // print('isUsable done');
      // 可选步骤:获取用户资料
      // await TruecallerAndroidSdk.getProfile;
      // print('getProfile done');
    } on PlatformException {
      print('初始化SDK失败。');
    }

    // 如果在异步平台消息仍在飞行时小部件从树中移除,则我们想要丢弃回复而不是调用setState来更新我们的非存在的外观。
    if (!mounted) return;
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('插件示例应用'),
        ),
        body: Center(
          child: GestureDetector(
            onTap: () {
              initPlatformState();
            },
            child: Text('运行于: $_platformVersion\n'),
          ),
        ),
      ),
    );
  }
}

更多关于Flutter集成Truecaller SDK插件truecaller_android_sdk的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter集成Truecaller SDK插件truecaller_android_sdk的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter应用中集成Truecaller SDK插件 truecaller_android_sdk 可以实现用户身份验证、电话号码识别等功能。以下是详细的集成步骤和使用方法。

1. 添加依赖

首先,在你的 pubspec.yaml 文件中添加 truecaller_android_sdk 依赖:

dependencies:
  flutter:
    sdk: flutter
  truecaller_android_sdk: ^1.0.0  # 请检查最新版本

然后运行 flutter pub get 来获取依赖。

2. 配置 Android 项目

在 Android 项目中,需要进行一些配置以确保 Truecaller SDK 正常工作。

2.1 添加 Truecaller SDK 依赖

android/app/build.gradle 文件中,添加 Truecaller SDK 的依赖:

dependencies {
    implementation 'com.truecaller.android.sdk:truecaller-sdk:2.6.0'  // 请检查最新版本
}

2.2 配置 AndroidManifest.xml

android/app/src/main/AndroidManifest.xml 文件中,添加以下内容:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.yourapp">

    <application>
        <meta-data
            android:name="com.truecaller.android.sdk.PartnerKey"
            android:value="YOUR_PARTNER_KEY" />
    </application>
</manifest>

YOUR_PARTNER_KEY 替换为你在 Truecaller 开发者平台注册应用后获得的 Partner Key。

3. 初始化 Truecaller SDK

在 Flutter 应用的 main.dart 文件中,初始化 Truecaller SDK:

import 'package:flutter/material.dart';
import 'package:truecaller_android_sdk/truecaller_android_sdk.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化 Truecaller SDK
  await TruecallerAndroidSdk.initialize();

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Truecaller Demo',
      home: TruecallerScreen(),
    );
  }
}

4. 使用 Truecaller SDK 进行身份验证

TruecallerScreen 中,你可以使用 Truecaller SDK 进行用户身份验证。以下是一个简单的示例:

import 'package:flutter/material.dart';
import 'package:truecaller_android_sdk/truecaller_android_sdk.dart';

class TruecallerScreen extends StatefulWidget {
  [@override](/user/override)
  _TruecallerScreenState createState() => _TruecallerScreenState();
}

class _TruecallerScreenState extends State<TruecallerScreen> {
  String? _userProfile;

  Future<void> _authenticateWithTruecaller() async {
    try {
      final profile = await TruecallerAndroidSdk.authenticate();
      setState(() {
        _userProfile = profile.toString();
      });
    } catch (e) {
      setState(() {
        _userProfile = 'Error: $e';
      });
    }
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Truecaller Integration'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            ElevatedButton(
              onPressed: _authenticateWithTruecaller,
              child: Text('Authenticate with Truecaller'),
            ),
            SizedBox(height: 20),
            Text(_userProfile ?? 'No profile data'),
          ],
        ),
      ),
    );
  }
}
回到顶部