zoukankan      html  css  js  c++  java
  • permission

    import 'package:flutter/material.dart';
    import 'dart:io';
    import 'dart:async';
    import 'package:rxdart/rxdart.dart';
    import 'package:path_provider/path_provider.dart';
    import 'package:path/path.dart';
    import 'package:permission_handler/permission_handler.dart';
    //import 'package:simple_permissions/simple_permissions.dart';
    
    
    void main() => runApp(MaterialApp(home: MyApp(),));
    
    class MyApp extends StatelessWidget {
      DataBloc bloc;
    
      cp()async{
        
    //    var per = await SimplePermissions.checkPermission(Permission.WriteExternalStorage);
        
        var per = await PermissionHandler().checkPermissionStatus(PermissionGroup.storage);
        if(per!=PermissionStatus.granted){
          print('requested');
          await PermissionHandler().requestPermissions([PermissionGroup.storage]);
        }
        per = await PermissionHandler().checkPermissionStatus(PermissionGroup.storage);
        print('per: $per');
    
        Directory tempDir = await getExternalStorageDirectory();
        print(tempDir.path);
        print('start cp');
        String a = join(tempDir.path, '4');
    
        var p = await Process.run('mkdir', [a]).then((ProcessResult e){
          print(e.stdout);
          print(e.stderr);
          print(e.exitCode);
        });
        print('cp finished');
      }
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(title: Text('sss'),),
          body: Container(
            child: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              crossAxisAlignment: CrossAxisAlignment.center,
              children: <Widget>[
                RaisedButton(child: Text('mkdir'),onPressed: (){
    
                    cp();
                },),
                RaisedButton(child: Text('delete'),onPressed: (){
    
                },),
              ],
            ),
          ),
        );
      }
    }
    
    class DataBloc {
      ReplaySubject dataBloc = ReplaySubject();
    }
    
    //void shell(String cmd, List<String> opts, void onExit(int exitCode))async{
    //  var p = await Process.start(cmd, opts);
    //  p.stdout.pipe(stdout);
    //  stdin.pipe(p.stdin);
    //  p.onExit = (exitCode)async{
    //    await p.kill();
    //    onExit(exitCode);
    //  }
    //}
    
    
    //void shell(String cmd, List<String> opts, void onExit(int exitCode)) {
    //  var p = Process.start(cmd, opts);
    //  p.stdout.pipe(stdout);  // Process output to stdout.
    //  stdin.pipe(p.stdin);    // stdin to process input.
    //  p.onExit = (exitCode) {
    //    p.close();
    //    onExit(exitCode);
    //  };
    //}
    

      

  • 相关阅读:
    204. Count Primes (Integer)
    203. Remove Linked List Elements (List)
    202. Happy Number (INT)
    201. Bitwise AND of Numbers Range (Bit)
    200. Number of Islands (Graph)
    199. Binary Tree Right Side View (Tree, Stack)
    198. House Robber(Array; DP)
    191. Number of 1 Bits (Int; Bit)
    190. Reverse Bits (Int; Bit)
    189. Rotate Array(Array)
  • 原文地址:https://www.cnblogs.com/pythonClub/p/10893756.html
Copyright © 2011-2022 走看看