错误:看起来应用程序没有访问位置的权限.将以下行添加到应用程序的AndroidManifest.xml中
即使我在manifest.xml中添加了权限并要求运行时权限,我也无法访问GPS.
我的AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.location">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
.....
.....
Run Code Online (Sandbox Code Playgroud)
完整代码:
import React, { Component } from 'react';
import { Platform, StyleSheet, Text, View,
PermissionsAndroid } from 'react-native';
export default class App extends Component {
async requestLocationPermission() {
try {
const granted = await PermissionsAndroid.request(
PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,
{
'title': 'Location Access Permission',
'message': 'Expensify would like to use your location ' +
'so you we track you.'
}
)
if (granted …Run Code Online (Sandbox Code Playgroud) 在反应导航抽屉菜单中。我想显示处于我的主要组件状态的用户名“John Doe” 我'Router'如何将 CustomDrawerContentComponent 传递给它。
额外信息:我从 componentDidMount 中的 AsyncStorage 获取此名称
这是我的代码
export default class Router extends Component {
constructor(props) {
super(props);
this.state = {
employeeName: "John Doe" //<-----How to pass this name to CustomDrawerContentComponent????
};
}
render() {
return <MyApp />;
}
}
const MyApp = DrawerNavigator(
{
Home: {
screen: Home
},
History: {
screen: History
},
AddDetails: {
screen: AddDetails
}
},
{
initialRouteName: "Home",
drawerPosition: "left",
contentComponent: CustomDrawerContentComponent,
drawerOpenRoute: "DrawerOpen",
drawerCloseRoute: "DrawerClose",
drawerToggleRoute: "DrawerToggle",
contentOptions: …Run Code Online (Sandbox Code Playgroud) 我正在使用反应组件ReactMediaRecorder使用以下代码捕获音频。它返回一个我在我的状态中设置的 blobUrl 。
<ReactMediaRecorder
audio
whenStopped={blobUrl=>this.setState({ blobUrl })}
render={({ status, startRecording, stopRecording, mediaBlob }) => (
<div>
<p>{status}</p>
<button onClick={startRecording}>Start Recording</button>
<button onClick={stopRecording}>Stop Recording</button>
<audio src={mediaBlob} controls />
</div>
)}
/>
Run Code Online (Sandbox Code Playgroud)
我的第一个问题是为什么 audio.play() 有效但 audio.duration 返回 NaN ?
let audio = new Audio(mediaBlob);
audio.play(); // this works
audio.duration //but this returns NaN
Run Code Online (Sandbox Code Playgroud)
其次,我想使用rest-api 将此音频上传到我的亚马逊s3 存储。有没有其他方法可以将此 blobUrl 转换为音频,然后将其上传到 s3 存储?