android_adb_tool 1.0.5 copy "android_adb_tool: ^1.0.5" to clipboard
android_adb_tool: ^1.0.5 copied to clipboard

A android adb tool by dart

example/lib/main.dart

import 'package:android_adb_tool/android_adb_tool.dart';
import 'package:android_adb_tool/api/tool.dart';
import 'package:flutter/material.dart';

void main() {
  AndroidAdbTool.instance.init();
  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  TextEditingController controller = TextEditingController(text: '10.0.2.2');
  TextEditingController portController = TextEditingController(text: '5037');
  TextEditingController shellController = TextEditingController(text: '');
  String? output;

  AdbDevice? _device;
  @override
  void initState() {
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Native Packages'),
        ),
        body: SingleChildScrollView(
          child: Container(
            padding: const EdgeInsets.all(10),
            child: Column(
              children: [
                TextField(
                  controller: controller,
                  decoration: const InputDecoration(labelText: 'address'),
                ),
                TextField(
                  controller: portController,
                  decoration: const InputDecoration(labelText: 'port'),
                ),
                ElevatedButton(
                    onPressed: _connect, child: const Text('ADB Connect')),
                TextField(
                  controller: shellController,
                  decoration: const InputDecoration(labelText: 'Run Adb shell'),
                ),
                Wrap(
                  children: [
                    FilledButton(
                        onPressed: _device == null ? null : run,
                        child: const Text('Run Shell Command')),
                    OutlinedButton(
                        onPressed: () async {
                          List<AdbDeviceInfo> devices =
                              getHost().devices();

                          for (var element in devices) {
                            print(element.data);
                          }
                        },
                        child: const Text("get devices"))
                  ],
                ),
                if (output != null)
                  Card(
                    child: Padding(
                      padding: const EdgeInsets.all(8.0),
                      child: Column(
                        crossAxisAlignment: CrossAxisAlignment.start,
                        children: [
                          const Text('输出'),
                          SelectableText(output!),
                        ],
                      ),
                    ),
                  )
              ],
            ),
          ),
        ),
      ),
    );
  }

  DeviceHost getHost() {
    return DeviceHost(
        addr: controller.text, port: int.parse(portController.text));
  }

  Future<void> _connect() async {
    final host = getHost();
    _device = host.connectToDevice();
    setState(() {});
  }

  Future<void> run() async {
    if (_device != null) {
      final shellCommand = shellController.text;
      try {
        final result = _device!.executeHostShellCommand(shell: shellCommand);
        print(result);
        setState(() {
          output = result;
        });
      } catch (e) {
        print("error $e");
      }
    }
  }
}
1
likes
130
points
61
downloads

Publisher

verified publisheritbug.shop

Weekly Downloads

A android adb tool by dart

Repository (GitHub)

Documentation

API reference

License

BSD-3-Clause (license)

Dependencies

flutter, flutter_rust_bridge, plugin_platform_interface

More

Packages that depend on android_adb_tool